当前位置:文档之家› Webservice实验报告

Webservice实验报告

Webservice实验报告
Webservice实验报告

J I A N G S U U N I V E R S I T Y

题目:Web Services 实验报告

所属学院:计算机学院

专业班级:软件1201

姓名:孙磊

学号:3120608016

题目一:

调用第三方web Service的接口实现便民信息的查询,例如天气预报或者火车信息。一. 实验要求

编写客户端,调用第三方Web Service提供的接口,实现对基本信息的查询。

二. 运行环境

Windows8 + Eclipse( JDK 8.0)

三.实验原理及过程

1.新建Java Project,项目名称为“天气查询”,新建包com.soap(放置跟web service服务调用相关的类)和包com.ui(放置跟UI界面编程相关的类)。

2.在com.soap包下新建类名为WeatherServices的Java文件。该类的作用调用中国天气网提供的免费接口"https://www.doczj.com/doc/832125630.html,/WebServices/WeatherWS.asmx",实现对城市的天气的实时查询。

项目结构如图:

(2)getSoapInputStream(String city )。

这个方法是通过调用上述免费接口获得

URLConnection连接对象,并对Soap

输入流进行相关的设置,包括编码格式等。

(3)getWeather(String city)。解析xml,获取相应的信息。由于查询后返回的原始结果是一个xml文档,因此需要对该文档进行DOM解析,从而获得我们需要的信息。

3.在com.soap包下新建MobileService.java文件,用来实现对手机号码基本信息的查询。使用的接口是:https://www.doczj.com/doc/832125630.html,/WebServices/MobileCodeWS.asm x?wsdl

4.在com.soap包下新建EmailService.java,实现对邮箱地址的验证。采用的接口是:https://www.doczj.com/doc/832125630.html,/WebServices/ValidateEmailWebService.asmx?wsdl");

5.在com.ui包下新建类名为MainFrame的Java文件。实现客户端的可视化布局。

里面设计的主要函数包括:

(1)MainFrame(String string)。这是一个构造方法,对窗体进行简单的初始化,以及为相应的控件添加事件监听及响应。

四.运行效果

题目二

自定义web service,并将其发布,然后编写客户端,调用该web service。

一. 实验要求

编写客户端,调用第三方Web Service提供的接口,实现对基本信息的查询。

二. 运行环境

Windows 7旗舰版+ Eclipse( JDK 8.0)

三.实验原理及过程

该实验需要自己编写相应的服务器端和客户端。而我要实现的功能是在客户端窗体输入学号,然后通过调用web service来返回学号对应的学生的姓名。实现服务的发布的方式有很多种,例如用Axis2来实现。其实,JDK本身就提供了Web Service服务发布的方法,就是jax-ws。具体实现的过程如下:

1.服务器端

(1)新建Java Project,项目名称为:webServervices_student_server。在该项下新建包com.webservice.server。

(2)在包中新建一个接口StudentInterface,在接口中声明一个查询的方法studentQuery(int number);

(3)新建StudentInterface接口的实现类StudentInterfaceImp,在类中实现StudentInterface接口中的查询方法studentQuery(int number)。Main方法中的Endpoint.publish("http://127.0.0.1:54321/student", new StudentInterfaceImp())方法是发布服务。其中http://127.0.0.1:54321/student是在本地自定义的RUL,54321是服务的端口号。

(4)运行该程序,会看到会打印以下提示信息,说明该服务已经启动:

(5)接下来要做的就是要生成WSDL文件。在浏览器地址栏中输入http://127.0.0.1:54321/student?wsdl,回车,会看到以下所示界面,说明已经将服务发布成功。

2.客户端

(1)为了模拟远程调用,新建Java Project,项目名称为:webServervices_student_client。在该项下新建包com.webservice.client。由于采用的是jax-ws,所以在客户端还需要用到按照上述的wsdl规格约束编译的.java文件。具体的实现如下:

1)新建一个java 项目wsimport,该项目可以用来专门放置其他项目的编译文件。找到该项目的src的绝对目录F:\Eclipse for javaee\wsipport\src.

2)在cmd命令窗口运行cd F:\Eclipse for javaee\wsipport\src,进入该目录下;

3)接着输入命令:wsimport –s . http://127.0.0.1:54321/student?wsdl。注意中间的空

格,回车后,结果如:

四.运行效果

实验感想

第一次接触Web Service这个概念,感觉还是挺陌生的。之前有听说过便民查询服务,而且也亲身用过。查阅了很多资料,才知道这些功能就是用Web Service来实现的。大概了解了相关的知识和调用第三方的服务接口的流程后,才知道,一个服务的发布和调用,也是很简单的。当然在整个过程中,还遇到过多次的失败,虽然不是很难的程序,但是如果其中某一步没有按照正确的顺序来执行,会很容易出错的。以下就来说说遇到的有一些问题:

1.在发布服务的时候,未能成功的生成wsdl文件。分析原因主要有URL的端口没有设置好,或者服务端的程序编写有误。当服务开启后,也就是服务端程序成功执行后,再在浏览器的地址栏里输入url+?wsdl,会成功生成。

2.在解析命令窗口解析wsdl的时候,不会生成.java文件,或者生成的.java文件所在的包名和原先的服务程序的包名不一致,说明解析有误,需要重新解析。在输入命令的时候,wsimport –s . http://127.0.0.1:54321?wsdl中间的空格不能少。

虽然这次的实验实现的功能比较简单,但是它却涵盖了一个完整的webservice的发布和调用的全过程,有了这次的实践。那么以后再做比较复杂的服务的时候也就不用担心没有头绪了。

附录:源代码(天气查询+ 自定义服务)

1.天气查询:

(1)WeatherService.java

package com.soap;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import https://www.doczj.com/doc/832125630.html,.URL;

import https://www.doczj.com/doc/832125630.html,.URLConnection;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class WeatherServices {

private static String getSoapRequest(String city) {

StringBuilder builder = new StringBuilder();

builder.append(""

+"

+ "xmlns:xsd=\"https://www.doczj.com/doc/832125630.html,/2001/XMLSchema\" "

+ "xmlns:soap=\"https://www.doczj.com/doc/832125630.html,/soap/envelope/\">"

+ " "

+ "" + city + " "

+ "");

return builder.toString();

}

private static InputStream getSoapInputStream(String city) throws Exception { try {

String soap = getSoapRequest(city);

if (soap == null) {

return null;

}

URL url = new URL(

"https://www.doczj.com/doc/832125630.html,/WebServices/WeatherWS.asmx");

URLConnection connection = url.openConnection();

connection.setUseCaches(false);

connection.setDoInput(true);

connection.setDoOutput(true);

connection.setRequestProperty("Content-Length",Integer.toString(soap.length()));

connection.setRequestProperty("Content-Type","text/xml; charset=utf-8");

connection.setRequestProperty("SoapAction",

"https://www.doczj.com/doc/832125630.html,/getWeather");

OutputStream out = connection.getOutputStream();

OutputStreamWriter writer = new OutputStreamWriter(out, "utf-8");

writer.write(soap);

writer.flush();

writer.close();

out.close();

InputStream in = connection.getInputStream();

return in;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public static String getWeather(String city) {

try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

InputStream is = getSoapInputStream(city);

Document doc = builder.parse(is);

//因为web services调用后返回的xml的每个元素都是string

NodeList list = doc.getElementsByTagName("string");

StringBuffer buffer = new StringBuffer();

for(int i=0;i

Node node = list.item(i);

if(node.getLastChild().getNodeValue().equals("查询结果为空!")){

buffer = new StringBuffer();

}

buffer.append(node.getFirstChild().getNodeValue());

}

is.close();

return buffer.toString();

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

}

(2)MobileService.java

package com.soap;

import https://www.doczj.com/doc/832125630.html,.webxml.MobileCodeWS;

import https://www.doczj.com/doc/832125630.html,.webxml.MobileCodeWSSoap;

public class MobileService{

public static String getMobileCodeInfo(String tele,String userID) {

MobileCodeWS codeWS = new MobileCodeWS();

MobileCodeWSSoap codeWSSoap = codeWS.getMobileCodeWSSoap();

String codeInfo = codeWSSoap.getMobileCodeInfo(tele, null);

System.out.println(codeInfo);

return codeInfo;

}

}

(3)EmailService.java

package com.soap;

import https://www.doczj.com/doc/832125630.html,.webxml.ValidateEmailWebService;

import https://www.doczj.com/doc/832125630.html,.webxml.ValidateEmailWebServiceSoap;

public class EmailService{

public static String chekEmailAddress(String email){

ValidateEmailWebService emailWebService = new ValidateEmailWebService();

ValidateEmailWebServiceSoap serviceSoap = emailWebService.getValidateEmailWebServiceSoap();

short result = serviceSoap.validateEmailAddress(email);

String info="";

switch (result) {

case 0:

info = "请重新验证";break;

case 1:

info = "邮件地址合法";break;

case 2:

info = "只是域名正确";break;

case 3:

info = "一个未知错误";break;

case 4:

info = "邮件服务器没有找到";break;

case 5:

info = "电子邮件地址错误";break;

case 6:

info = " 免费用户验证超过数量(50次/24小时";break;

case 7:

info = " 商业用户不能通过验证";break;

}

return info;

}

}

(4)MainFrame.java

package com.ui;

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.FlowLayout;

import https://www.doczj.com/doc/832125630.html,bel;

import java.awt.TextArea;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowEvent;

import javax.swing.Box;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.border.EmptyBorder;

import com.soap.WeatherServices;

public class MainFrame extends JFrame implements ActionListener

{

static String info="";

TextField tf1;

Button bt1,bt2;

Label label;

JPanel contentPane;

JScrollPane scrollPane;

TextArea textArea;

Box box1,box2;

public MainFrame(String string){

super(string);

setLayout(new FlowLayout());

label = new Label("输入城市名:");

label.setVisible(true);

tf1 = new TextField(5); tf1.setVisible(true); tf1.setEditable(true);

bt1=new Button("查询");

bt1.addActionListener(this); bt1.setVisible(true);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5,5,5,5));

contentPane.setLayout(new BorderLayout(120,120));

this.setContentPane(contentPane);

box1 = Box.createHorizontalBox();

box1.add(label);

box1.add(tf1);

box1.add(bt1);

contentPane.add(box1,BorderLayout.NORTH);

scrollPane=new JScrollPane();

scrollPane.setEnabled(true);

contentPane.add(scrollPane,BorderLayout.CENTER);

textArea=new TextArea();

scrollPane.setViewportView(textArea);

setBounds(500, 200, 400, 450);

setVisible(true);

validate();//确保组件具有有效的布局

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==bt1) {

String city = tf1.getText().toString();

info=WeatherServices.getWeather(city);

textArea.setText(info);

}

if (e.getID() == WindowEvent.WINDOW_CLOSING) {

System.exit(0);

}

}

public static void main(String[] args) {

new MainFrame("天气查询");

}

}

2.自定义服务(学生查询)

(1)服务端

1)StudentInterfaceImp

package com.webservice.server;

import javax.jws.WebService;

import javax.xml.ws.Endpoint;

/**

* @author 张波

* StudentInterfaceImp.java

* 2015年5月28日

*/

@WebService

public class StudentInterfaceImp implements StudentInterface{

String name[]={

"姜倩云","张丽梅","吴美庆","张忠敏","王雅蓉","葛红敏","赵斌灿","王严鑫",

"莫可宏","王猛", "侯勇军","马铸辉","易鹏","罗路辉","闫治鹏","孙磊","李佳玲",

"王勃博","康尧","张波", "邓雷","陈佳鑫","唐炜宁","葛龙","倪赛杰","陈成",

"刘浩浩","周子轩","宫蕊","文云丽","沈雪","刘冬媛","褚蓉","钱苑","董樟裕",

"马凌杰","王京源","陈辉云","罗建兴","陈晨","赵文宇","宗玮雯","赵贝贝",

"黄豪琛","娄宽","任上海","王康","沈楠","蒋宇","吕阳","王刚","王扬","吕中剑",

"张军","卢惺鑫","姚礼宗"

};

@Override

public String studentQuery(int number) {

System.out.println("from client..." +"学号:" +number);

String result = name[number];

System.out.println("to client..." + "姓名:"+result);

return result;

}

public static void main(String[] args) {

Endpoint.publish("http://127.0.0.1:54321/student", new StudentInterfaceImp());

System.out.println("发布成功...");

}

}

2)StudentInterfaceImp

package com.webservice.server;

public interface StudentInterface {

public String studentQuery(int number);

}

(2)客户端(Client.java)

package com.webservice.client;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JButton;

import javax.swing.JTextArea;

import javax.swing.Box;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import https://www.doczj.com/doc/832125630.html,ponent;

import java.awt.Color;

import com.webservice.server.StudentInterfaceImp; import com.webservice.server.StudentInterfaceImpService; public class Client extends JFrame {

private JPanel contentPane;

private JTextField textField;

private JButton search;

private JButton cancel;

private JTextArea textArea;

private StudentInterfaceImpService impService;

private StudentInterfaceImp imp;

private static int number=0;

public Client(String string) {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setForeground(Color.WHITE);

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

JLabel label = new JLabel("请输入学号进行查询");

label.setForeground(Color.BLUE);

label.setBounds(155, 10, 129, 50);

contentPane.add(label);

textField = new JTextField("20");

textField.setBounds(155, 58, 110, 22);

contentPane.add(textField);

textField.setColumns(10);

// 通过webservice的服务视图

impService = new StudentInterfaceImpService();

// 获得服务端点

imp = impService.getStudentInterfaceImpPort();

search = new JButton("查询");

search.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if(e.getSource()==search) {

number = Integer.parseInt(textField.getText().toString());

if(number>56||number<1){

result = "非法输入!";

textArea.setText(result);

}else{

textArea.setText("你输入的学号是:"+number+"\n"+"查询结果为:"+result);

System.out.println(result);

}

}

});

search.setBounds(139, 104, 73, 23);

contentPane.add(search);

cancel = new JButton("取消");

cancel.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

textField.setText("");

textArea.setText("");

}

});

cancel.setBounds(222, 104, 73, 23);

contentPane.add(cancel);

textArea = new JTextArea();

textArea.setBounds(105, 153, 223, 70);

contentPane.add(textArea);

Component glue = Box.createGlue();

glue.setBounds(61, 196, 1, 1);

contentPane.add(glue);

}

public static void main(String[] args) {

Client frame = new Client("自定义web service调用");

frame.setVisible(true);

} }

大数据一体化教学实训平台简介

大数据一体化教学实训平台简介 大数据一体化教学实训平台是由泰迪科技自主研发,旨在为高校大数据相关专业提供一体化教学实训环境及课程资源。 本平台共包含9大模块:云资源管理平台、教学管理平台、大数据分析平台、Python 数据挖掘建模平台、R语言数据挖掘建模平台、大数据开发实训平台、Python编程实训平台、R语言编程实训平台、大数据整合平台。以教学管理平台、云资源管理平台为支撑,以优质的课程、项目案例资源为核心,并以自主研发的数据挖掘建模平台为实训工具,把课程、软件、硬件内容统一结合,满足高校大数据教学与实训的一体化平台。 大数据一体化教学实训平台架构(总)

大数据一体化教学实训平台架构(理学方向) 大数据一体化教学实训平台架构(工学方向)

大数据一体化教学实训平台特点 ?B/S架构:可直接通过客户机的浏览器对服务器端的一体化教学实训平台进行访问。?模块丰富:提供软硬件管理、教学管理、实验实训等系列模块,满足不同的教学与实训场景使用。 ?拓展性强:教师自主开设新课程、添加各种课程资源与活动,满足用户的个性化需求。?单点登录:用户只需一次登录即可访问所有的教学与实训平台,解决了登录繁琐、操作不便等问题。 ?资源一体:提供教学大纲、教学视频、教学PPT、课后习题、实验指导书、实验数据、实验代码、实验环境等一系列的教学实训资源,全方位解决实际教学与实训过程中所遇到的问题。 ?教学一体:分别提供“教”与“学”的软件环境,教学与实训模块深度融合,真正实现一体化。 ?软硬件一体:硬件环境采用云柜的方式进行搭建,内部集成机柜、服务器(部署一体化教学实训平台)、供配电、UPS、变频空调、应急通风等,整个云柜架构和谐统一、方便安装与维护。 云资源管理平台简介 云资源管理平台主要对实验室云虚拟化资源进行管理及维护,负责对实验室所有软件系统进行管理与监控,将云存储资源、服务器资源和网络资源整合,然后通过虚拟化搭建私有云平台,在私有云平台上搭建教学管理平台与一系列的大数据实训平台。 云资源管理平台功能及特点 ●支持系统资源实时统计和监控 ●支持云主机批量操作和管理 ●支持云主机模板创建与分配 ●支持操作日志查看和可视化分析 ●支持物理服务器集群管理 ●支持基础网络与私有网络 ●云硬盘可独立挂于云主机 ●平台系统高可用,容错性强 ●云主机性能卓越,媲美物理机

SAP开发webservice接口教程

SAP开发webservice接口教程 在client=100中进行开发: 1.创建RFC函数 SE80,在函数组下,右击->创建,创建函数模块,填写函数模块名称及描述。 2.函数属性标签页,选择“远程启用的模块”,其余默认不变。 3.函数导入标签页,需要添加调用时传入的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_T (需要自己创建) 行类型:ZSHR_EMPLOYEER (需要自己创建)

4.函数导出标签页,需要添加调用返回的参数(表),“传递值”需勾选。 表类型:ZSHR_EMPLOYEER_OUT_T (需要自己创建) 行类型:ZSHR_EMPLOYEER_OUT (需要自己创建) 5.函数源代码标签页,需要写代码实现把传入的数据保存在透明表中。 至此,函数创建完成。 6.创建Web Services 右击包名创建企业服务,进入如下页面,选择“Service Provider”,因为我们是服务提供者,点击“继续”。

7.选择“Existing ABAP Object (Inside Out)”,点击“继续”。 8.给服务起名,并填写描述,点击“继续”

9.选择“Function Module”,点击“继续”。 10.填写我们第一步创建的函数,并勾选“Map Name”,点击“继续”。 11.SOAP Appl默认不变,Profie下拉框选择第四个选择,即不进行权限认证。点击“继续”。 12.填写对于的包和请求,点击“继续”。 下一步,直接点击“完成”。服务创建成功。

13.配置SOA 使用T-CODE:soamanager,进入web页面的SOA管理(client=100)。 14.点击“简化Web服务配置”,进入如下设置页面,点击“执行”,从列表中找到自己创建的 服务,勾选第一个checkbox,User Name/Password(basic),点击列表左上角的“保存”,之后页面右上角的“返回”按钮,返回首页。 这一步设置,代表我们只设置用户名/密码的调用认证方式。

EBS中发布WEBSERVICE接口的方法

在Oracle EBS二次开发中,PL/SQL程序是开发人员使用频率最高的开发语言,同时也是大家最容易掌握的工具之一了,而我们也很希望将自己编写的PL/SQL 程序发布为Web服务来提供给客户端程序使用,同时也可以实现和外围系统的集成,有了irep_parser这个工具,我们就可以将自己编写的PL/SQL 程序发布到Oracle Integration Repositoy中。Oracle Integration Repositoy中集成接口的来源都是Oracle,客户化的程序发布上去的为Custom: 下面描述如何将PL/SQL程序接口发布到Oracle Integration Repositoy中作为集成接口供第三方程序集成调用 一、给EBS系统打补丁 参考如下安装文档: 安装文档.docx 二、添加客户化应用到Product Family 客户化应用设置好之后,它没有归属于任何的产品家族,如我的客户化应用CUX,因此发布在客户化应用下的集成接口在Oracle Integration Repositoy中无法方便的查看,如下图:

如果客户化集成接口是组织到自己的应用下就需要先注册一个产品家族,下面将CUX Developer(CUX) 应用注册到CUX Developer(cux_pf)这个产品家族下作为例子进行演示: 1,添加产品家族 CUX Developer(cux_pf) --添加产品家族 begin -- Call the procedure ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation => 'cux_pf', x_pseudo_product_flag => 'N', x_product_family_flag => 'Y', x_application_short_name => NULL, x_product_name => 'CUX Developer', x_product_family_abbreviation => NULL, x_product_family_name => NULL, x_aru_update_date => to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'), x_currdate => to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'), x_last_updated_by => -1, x_created_by => -1); COMMIT; end; 2,注册CUX Developer(CUX)应用到产品家族中

测试webService地址是否能够访问

通过COM组件测试webService地址是否能够访问 //适用于测试连接webService远程服务器 //引用Microsoft XML, v3.0 COM组件 //测试连接 privatevoid btnTestConn_Click(object sender, EventArgs e) { string strIP = txtServerAdddress.Text; if (!strIP.Contains("http://")) { strIP = "http://" + strIP; } string strProt = txtServerProt.Text; string strAddress = strIP + ":" + strProt + "/DataService?wsdl"; string urls = "http://192.168.1.7:8884/DataService?wsdl"; XMLHTTP http = new XMLHTTP(); try { http.open("GET", strAddress, false, null, null); http.send(strAddress); int status = http.status;

if (status == 200) { MessageBox.Show("成功"); } else { MessageBox.Show("连接失败。状态:" + status.ToString()); } } catch { MessageBox.Show("连接失败!"); } } 二、测试webService是否访问正常 //测试连接

【WebService】接口的测试方法

【WebService】接口的测试方法 有以下多种方式: 一、通过WSCaller.jar工具进行测试: 前提:知道wsdl的url。 wsCaller可执行程序的发布方式为一个wsCaller.jar包,不包含Java运行环境。你可以把wsCaller.jar复制到任何安装了Java运行环境(要求安装JRE/JDK 1.3.1或更高版本)的计算机中,用以下命令运行wsCaller: java -jar wsCaller.jar 使用wsCaller软件的方法非常简单,下面是wsCaller的主界面: 首先在WSDL Location输入框中输入你想调用或想测试的Web Service的WSDL位置,如“https://www.doczj.com/doc/832125630.html,/axis/services/StockQuoteService?wsdl”,然后点“Find”按钮。wsCaller就会检查你输入的URL地址,并获取Web Service的WSDL信息。如果信息获取成功,wsCaller会在Service和Operation下拉列表框中列出该位置提供的Web Service服务和服务中的所有可调用的方法。你可以在列表框中选择你要调用或测试的方法名称,选定后,wsCaller窗口中间的参数列表框就会列出该方法的所有参数,包括每个参数的名

称、类型和参数值的输入框(只对[IN]或[IN, OUT]型的参数提供输入框)。你可以输入每个参数的取值。如下图: 这时,如果你想调用该方法并查看其结果的话,只要点下面的“Invoke”按钮就可以了。如果你想测试该方法的执行时间,则可以在“Invoke Times”框中指定重复调用的次数,然后再按“Invoke”按钮。wsCaller会自动调用你指定的方法,如果调用成功,wsCaller会显示结果对话框,其中包括调用该方法所花的总时间,每次调用的平均时间和该方法的返回值(包括返回值和所有输出型的参数)。如下图:

实施一个Web服务-实验三

西北工业大学 电子服务系统设计》实验报告

Select a wizard C reate a」ava ul曰酊 Wizards; type filler text 鑿Java Project from Existing Ant Buildfile T " Plug-in Project > 一-General Axis2 Wiaards Axi^2 匚od色Generator c; AxiService Archiver L - Connection Profiles Database Web S?rvicts Eclipse Modeling -ramework > fe EJB < Back | N亡xt ?|Finish Cancel 将Axis2服务部署到Tomcat下 > 本培強盘(E:)> Tonneat > webapp^ v 0 搜枣SH P ■锋改日期大小 a?s22017 12/10 17;27 文*4夹 doci2017/12/10 17126 exarrples2017fl 2/1017;26 host-ma nd?曽r2017/12/1017i26 文牛夹 manager2017/12/10 17:2€玄牛表 ROOT2017/12/10 17;26 文條 axi<:2.war201^4/17 18:24 WAR文件1S.277 KB lirEN^Fhc?01?/4/17 18:2D 12 KR NOTlCE.txt2012.4/17 18^0 2 KB README.txt2012/4/17 1&30 3 KB release-notes.html2012/4/17 18:30 匚l-rome HTML D“. 5 KB 启动tamcat,以“管理员身份运行” \bin\startup.bat ;在浏览器中输入

Webservice接口开发

Webservice接口开发 Author:Geloin

目录 1 准备工作 (1) 2 服务器端 (1) 2.1 主程序 (1) 2.2 services.xml (2) 2.3 传值方式 (3) 2.4 打包 (4) 2.5 发布 (6) 3 客户端 (8) 3.1 导入包 (8) 3.2 示例代码 (8) 3.3 代码解析 (10) 3.3.1 设定服务器地址 (10) 3.3.2 设定action (10) 3.3.3 设定要调用的方法名 (11) 3.3.4 设定客户端控件 (11) 3.3.5 设定命名空间 (11) 3.3.6 设定需要传送的值 (11) 3.3.7 设定返回数据类型 (11) 3.3.8 获取返回结果 (12)

1准备工作 至https://www.doczj.com/doc/832125630.html,/axis2/下载axis2的bin及war包,分别解压之,在环境变量中添加AXIS2_HOM,将axis2.war放置到tomcat/webapps目录下,启动tomcat,用浏览器打开http://localhost:8080/axis2,如下图所示: 2服务器端 2.1主程序 服务器端可以是任何一个程序,例如下面的例子: public class Test { // 此程序返回一个字符串 public String test1(String arg) { return arg + “测试”; } // 此程序返回一个一维数组 public String[] test2(String arg) { String[] result = new String[]{arg}; return result;

实验一 刘馨雨

《SOA和Web Service技术》 实验报告 题目: Web Service环境搭建 院系:计算机科学与工程学院 班级:170408 姓名:刘馨雨 学号:20172693

实验一Web Service环境搭建 一、实验目的 1.掌握Java环境的安装。 2.掌握eclipse的基本使用方法。 3.学会创建一个Java web 项目。 二、实验内容 1.Java环境的安装与配置。 1)Java下载地址 https://www.doczj.com/doc/832125630.html,/technetwork/java/javase/downloads/jdk8-downloads-21331 51.html 根据网站上的版本下载适合自己系统的版本。(有下载完的) 2)Java安装

3)JAVA_HOME配置。 i.打开高级系统设置 ii.点击环境变量 iii.在系统变量中创建一个名为JAVA_HOME的环境变量,变量值为JAVA的安装目录。4)在系统变量中找到path,在变量值最后加一个分号“;”,再把你安装java的路径+bin 复制进来,点击确定。 5)查看是否安装成功。

i.在CMD中输入java -version,出现Java版本号则证明安装成功。 2.使用eclipse创建一个新的Java Web项目。 6)配置tomcat i.打开 window选项卡下的preferences ii.配置tomcat 7)新建一个java_web一个用程序 i.选择Dynamic Web Project

ii.取项目名并选中tomcat,点击next iii.选中Generate点击finish。

webservice四种发布方式及客户端调用

WebService 四种发布方式总结 Author:yczhang 1.CXF方式 CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:https://www.doczj.com/doc/832125630.html,ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。该问题在此处做个记录,以后使用cxf与was的时候需要注意!!! 使用cxf+spring搭建WebService: 第一步,添加jar包。此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包: 而泰康的was环境则需要如下jar包:

明显的多了很多,原因应该是服务器jar包池的不同。根据错误提示缺什么补什么就可以了,注意jar包勿重复。 第二步,配置web.xml文件,如下(重要的地方已标记): contextConfigLocation classpath:/applicationContext.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFil ter encoding UTF-8 encodingFilter /* CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /webservice/* 上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;

webservice实验报告

Webservice课程设计报告 一.手机号码归属地服务 (一)WSDL文档: - - - - - - - - - - - -

NET调用WebService服务的方法详解!

本文实例讲述了https://www.doczj.com/doc/832125630.html,调用WebService服务的方法。分享给大家供大家参考,具体如下: 一、WebService:WebService是以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元。 (1)应用程序逻辑单元:web服务包括一些应用程序逻辑单元或者代码。这些代码可以完成运算任务,可以完成数据库查询,可以完成计算机程序能够完成的任何工作。 (2)可由程序访问:当前大多是web站点都是通过浏览器由人工访问的,web服务可以由计算机程序来访问。 (3)标准的we协议:Web服务的所有协议都是基于一组标准的Web协议,如HTTP、XML、SOAP、WSDl、UDDI等 (4)平台独立性:web服务可以在任何平台上实现。因为标准协议不是由单个供应商专用的,它由大多数主要供应商支持。 SOAP(Simple Object Access Protocol,简单对象访问协议)协议:是用于交换XML编码信息的轻量级协议,SOAP协议是HTTP和XML协议的组合。 WSDL(Web Service Description Language,Web服务描述语言)是用XML文档来描述Web 服务的标准,是Web服务的接口定义语言。 二、创建https://www.doczj.com/doc/832125630.html, WEB服务 建立Web服务就是把一些信息或逻辑对其他计算机和客户公开,进一步说,就是从支持SOAP通信的类中建立一个或多个方法。 创建Web服务的步骤:(VS2008) 首先,新建一个网站。选择文件-------->新建--------->网站,打开“新建网站”对话框,选择“https://www.doczj.com/doc/832125630.html, web服务”模板。确定后,创建成功。 创建好后,会生成Service.asmx,其代码隐藏文件Servece.cs位于App_Code文件中。Web服务文件都使用扩展名.asmx。 发现在VS2010中,创建web服务是先新建一个网站,在选择添加新项,然后选择web 服务。 三、使用https://www.doczj.com/doc/832125630.html, Web服务 (1)添加Web引用 1、新建网站,右键单击网站根目录,选择“添加Web引用”项。 2、在“添加Web引用”对话框中,在URl列表框中选择或者填入Web服务的URL。(.asmx 文件路径)然后在“添加Web引用”文本框中填入希望在应用程序中使用的添加Web引用名。

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

ESB部署WebService接口(统一用户和待办)

1 统一待办(WebService方式) 1.1 概述 门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。 统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。 为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。 统一待办实现共分为以下部分: 系统待办信息获取 系统待办信息展示 系统待办信息处理 1.2 待办信息获取 设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图

数据获取设计示意图 步骤如下: 1.应用系统需获得最新的待办信息。 2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。 3.统一待办系统将应用系统提供的待办信息展示给用户。 4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。 1.3 待办信息展示 设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图 用户 待办栏目页面 待办集中展示设计示意图 场景如下:

在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。此外,如果信息是未办或者未阅,用红色表示 1.4 待办信息处理 设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。如下图: 待办信息集中处理设计示意图

留言板与天气预报模块网站开发实训

《网站开发》实训报告 题目一天气预报模块 题目二留言板模块 教学院计算机学院 专业 班级(一) 姓名 指导教师 2014 年12 月 5 日

目录 目录------------------------------------------------------------------------------------------------------------------------ 1一概述 ---------------------------------------------------------------------------------------------------------------------- 2 一. 天气预报模块 -------------------------------------------------------------------------------------------------- 2 1.天气预报模块的介绍 ------------------------------------------------------------------------------------- 2 2.天气预报模块的要求 ------------------------------------------------------------------------------------- 2 二.留言板模块 ----------------------------------------------------------------------------------------------------- 3 1. 留言板模块的介绍 --------------------------------------------------------------------------------------- 3 2.留言板模块的要求----------------------------------------------------------------------------------------- 3二总体设计 ---------------------------------------------------------------------------------------------------------------- 4 一.天气预报模块---------------------------------------------------------------------------------------------------- 4 1.天气预报模块设计思路 ---------------------------------------------------------------------------------- 4 2.天气预报模块流程图 ------------------------------------------------------------------------------------- 4 3.实现方法以及主要技术特点 ---------------------------------------------------------------------------- 6 4.天气预报模块功能介绍以及我的任务---------------------------------------------------------------- 7 二.留言板模块------------------------------------------------------------------------------------------------------- 7 1.整体思路 ----------------------------------------------------------------------------------------------------- 7 2.留言板模块流程图----------------------------------------------------------------------------------------- 8 3.实现方法及主要技术 ------------------------------------------------------------------------------------- 9 4.主要功能 ----------------------------------------------------------------------------------------------------- 9 5.我所承担设计部分--------------------------------------------------------------------------------------- 10三详细设计 -------------------------------------------------------------------------------------------------------------- 10 一. 天气预报模块 ------------------------------------------------------------------------------------------------ 10 1.具体功能 --------------------------------------------------------------------------------------------------- 10 2.重要的实验代码------------------------------------------------------------------------------------------ 10 3.控件表如下 ------------------------------------------------------------------------------------------------ 15 4.实验运行截图如下--------------------------------------------------------------------------------------- 15 二.留言板模块----------------------------------------------------------------------------------------------------- 15四网站的调试与运行结果说明 ------------------------------------------------------------------------------------- 18一.天气预报模块运行结果说明 ----------------------------------------------------------------------------- 18 二.留言板模块结果说明 ---------------------------------------------------------------------------------------- 18 1.留言板数据库的设计 ----------------------------------------------------------------------------------- 18 2.网页实现效果--------------------------------------------------------------------------------------------- 19五实训小结 -------------------------------------------------------------------------------------------------------------- 23参考文献------------------------------------------------------------------------------------------------------------------- 24

WebService接口代码样例说明

WS接口代码样例 Java代码调用样例 参见WSTest_for_Java.rar附件,该附件为Eclipse工程代码。接口调用参见https://www.doczj.com/doc/832125630.html,info.smsmonitor.Test C代码调用样例 参见WSTest_for_c.tar附件,该附件为标准C工程代码。 附录 Webservice消息发送接口报文样例: TaskID-003761653 8613301261178 106557503 1 This is test message 1 00:00-23:59

webservice接口开发

Eclipse 关于接口系统的开发 我们做接口服务端: 小知识: 接口分为:服务端与客户端 服务端:即提供者,是为调用者提供数据的一方; 客户端:即调用者,是调用接口的一方; <一> 服务端的创建 步骤1. 在eclipse新建一个普通工程,例如:新建一个web project 工程。 步骤2.创建完成后,在刚才新建的工程里面,加入我们需要实现的类,和接口。在实现类里面编写客户端传入参数后,需要的相关信息。 例如: Public String sayHello(String word) { Return word; } 步骤3. 进入服务端代码的自动生成阶段,我们选中刚才编写的实现类或是创建的工程,右键。选择,new→project…→other→,如下图,选择web service 服务端。点击next

步骤4.根据下图,通过选择实现类,点击完成。自动生成服务端了。

步骤5 .前4步骤已经完成了webservice的服务端,并已经自动启动好了,我们进行如下测试,访问下自动产生的wsdl文件是否能访问到: 例如:访问wsdl地址示例 http://10.1.159.28:8082/ICTS/services/GetWorkflowListDaoImp?wsdl 其中:GetWorkflowListDaoImp 为自己创建的实现类名称 <二>客户端的创建,测试我们完成的服务端接口:

步骤1. 创建一个普通的web project 工程 步骤2. 创建完成后,选中,我们创建的工程,右键→,new→other→,创建web service cliet 客户端,完成后,点击finish。完成 步骤3。我们通过客户端进行调用,测试一下服务端是否正常。通过如下示例地址:http://10.1.159.28:8082/test1/sampleGetWorkflowListDaoImpProxy/TestClient.jsp, 这是客户端为我们自动建立的测试页面,我们只需输入参数,就可以进行测试了。界面如下:

相关主题
文本预览
相关文档 最新文档