使用Myeclipse创建WebService实例
- 格式:doc
- 大小:953.00 KB
- 文档页数:17
如何将基于Axis2的Web Service集成到自己的webapp本文主要描述如何使用Apache开源项目Axis提供的API来实现Web Services并集成到我们的应用程序当中。
本文的读者应有JAVA web 应用开发基础。
应该具有看过WSDL,SOAP,XML等的基本规范。
熟悉Eclipse+MyEclipse开发环境。
一、环境准备使用Axis来开发Web services 需要准备 web 服务器,Axis API。
本文使用的Web container 是Tomcat5.5, Axis API 采用版本2。
1.1软件下载准备Tomcat下载地址:/download-55.cgi#5.5.20Axis标准包:/ws/axis2/1_5_1/axis2-1.5.1-bin.zipAxis War包:/ws/axis2/1_5_1/axis2-1.5.1-war.zip Eclipse+MyEclipse:可以到官方网站下载(本文为3.3+6.5GA)1.2安装A.首先搭建开发环境,需要将下载到的Eclipse解压缩到一个目录。
B.安装MyEclipse6.5GA。
然后启动MyEclipse。
C.下面开始搭建Web Services的部署环境。
将下载的tomcat包解压缩到一个目录。
完成web container的安装。
E.将axis2.war包拷贝到tomcat安装目录下的webapps目录中。
F.启动Tomcat(windows 下为TOMCA_HOME/bin中的startup.bat;Linux,unix环境为startup.sh文件),打开浏览器输入并访问:http://ip:port/axis2来查看。
(如果没有进行配臵文件的修改此地址应该为http://localhost:8080/axis2),如果能看到下面的页面则说明已经安装完成。
二、Quick Start环境准备好后,先从一个简单的例子开始。
1.创建服务端工程WSServer(web工程)2.创建服务的类与方法package com.shi.service;/*** 服务类* @author shijianhang**/public class WSTest {/*** 服务方法* @param name* @return*/public String sayHello(String name) { return"Hello, " + name;}}3.发布服务使用eclipse的工具来发布服务配置发布的服务1 要发布的类2 使用的服务器3 使用的soap框架4.测试服务查看服务的目录调用服务方法http://localhost:6089/WSServer/services/WSTest?method=sayHello&arg0=shi WSTest 服务类sayHello服务方法arg0=shi 方法参数输出:Hello,shi5.下载wsdl文件(服务定义文件)保存打开的文件WSTest.wsdl<?xml version="1.0"encoding="UTF-8"?><wsdl:definitions targetNamespace=""xmlns:apachesoap="/xml-soap"xmlns:impl=""xmlns:intf=""xmlns:wsdl="/wsdl/"xmlns:wsdlsoap="/wsdl/soap/"xmlns:xsd="/2001/XMLSchema"><!--WSDL created by Apache Axis version: 1.4Built on Apr 22, 2006 (06:55:48 PDT)--><wsdl:types><schema elementFormDefault="qualified"targetNamespace=""xmlns="/2001/XMLSchema"><element name="sayHello"><complexType><sequence><element name="name"type="xsd:string"/></sequence></complexType></element><element name="sayHelloResponse"><complexType><sequence><element name="sayHelloReturn"type="xsd:string"/></sequence></complexType></element></schema></wsdl:types><wsdl:message name="sayHelloRequest"><wsdl:part element="impl:sayHello"name="parameters"/> </wsdl:message><wsdl:message name="sayHelloResponse"><wsdl:part element="impl:sayHelloResponse"name="parameters"/> </wsdl:message><wsdl:portType name="WSTest"><wsdl:operation name="sayHello"><wsdl:input message="impl:sayHelloRequest"name="sayHelloRequest"/><wsdl:output message="impl:sayHelloResponse"name="sayHelloResponse"/></wsdl:operation></wsdl:portType><wsdl:binding name="WSTestSoapBinding"type="impl:WSTest"><wsdlsoap:binding style="document"transport="/soap/http"/><wsdl:operation name="sayHello"><wsdlsoap:operation soapAction=""/><wsdl:input name="sayHelloRequest"><wsdlsoap:body use="literal"/></wsdl:input><wsdl:output name="sayHelloResponse"><wsdlsoap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="WSTestService"><wsdl:port binding="impl:WSTestSoapBinding"name="WSTest"> <wsdlsoap:addresslocation="http://localhost:6089/WSServer/services/WSTest"/></wsdl:port></wsdl:service></wsdl:definitions>当然,你也可以直接到web目录下找到wsdl子目录,获得相关的wsdl文件6.利用wsdl文件生成服务接口类利用WSDL_TO_JA V A转换.bat(将wsdl文件转换成java类的批处理程序)set java_home=C:\Program Files\Java\jdk1.5.0_09set path=%java_home%\bin;%path%set AXIS_HOME=D:\workspace2\WSServer\WebContent\WEB-INFset AXIS_LIB=%AXIS_HOME%/libsetAXISCLASSPATH=%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_ LIB%/commons-logging.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/ws dl4j.jar;java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java -o 生成调用文件WSTest.wsdlpausejava_home jdk目录AXIS_HOME + AXIS_LIB 定位axis的jar包生成调用文件是一个目录,保存转换后的java文件WSTest.wsdl 要转换的wsdl文件下面是生成的java文件列表7.创建客户端工程WSClient(普通工程)1将生成的java文件复制到工程目录下2 添加jar包8.调用服务import .URL;import java.rmi.RemoteException;import javax.xml.rpc.ServiceException;import com.shi.service.WSTest;import com.shi.service.WSTestService;import com.shi.service.WSTestServiceLocator;public class Test {/*** 调用webservice* @param args*/public static void main(String[] args) {t ry {WSTestService service = new WSTestServiceLocator();//调用localhost的服务WSTest wstest0 = service.getWSTest();System.out.println(wstest0.sayHello("shi"));//调用其他路径的服务URL portAddress = newURL("http://127.0.0.1:6089/WSServer/services/WSTest");WSTest wstest1 = service.getWSTest(portAddress);System.out.println(wstest1.sayHello("shi"));} catch (Exception e) {e.printStackTrace();}}}。
用eclipse创建webservice一、用eclipe创建一个WebService服务器端1、首先新建一个动态web工程,选择File->New->DynamicWebProject,命名为a某i。
2、创建一个包,再新建一个类,右击rc,选择New->Cla,命名为AddService添加方法add:publicclaAddService{publicintadd(inta,intb){returna+b;}}3、右击AddService.java文件,选择WebService->CreateWebService。
4、点击ne某t,选择方法add,点击ne某t->Starterver->Finih。
这时可以看到WebContent目录下多了个wdl文件夹,a某i插件自动为我们生成了AddService.wdl。
5、我们可以对AddService的方法进行测试。
右击AddService.wdl,选择WebService->TetwithWebServiceE某plorer。
选择add就可以该方法进行测试。
6、将AddService.java复制到WebContent目录下,并改名为AddService.jw。
8、将workpace下的a某i工程里的WebContent复制到了tomcat的webapp目录下,并改名为a某i,方便访问。
启动tomcat服务器,在浏览器中输入:至此,WebService服务端成功发布。
二、用eclipe创建一个WebService客户端1、新建一个动态Web工程addTet,再创建WebService客户端:File->New->Other..->WebService->WebServiceClient。
(必须有Web工程才能创建WebServiceClient)3、新建一个测试类TetAddService,为了方便,这个类和刚刚产生的五个类在一个包下。
1.1 Web Service开发示例1.1.1 Axis1开发示例本节通过一个基于Axis的Web Service开发来具体介绍如何进行Web Service开发。
该示例采用的开发工具如下:MyEclipse6.5Axis-1_4Tomcat6.0Axis支持三种Web Service开发方式,分别是:1) Dynamic Invocation Interface ( DII)2) Dynamic Proxy方式3) Stubs方式在本例中,我们采用第stubs方式。
进行开发前,我们要搭建好整个开发环境。
首先,下载Axis-1_4,解压,在其文件夹下有一个lib目录,其中包含了Axis的所有包,将这些包配置到环境变量中,具体设置如下:set AXIS_HOME=c:\axisset AXIS_LIB=%AXIS_HOME%\libset AXISCLASSPATH= %AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar;%AXIS_LIB%\commons-logging.jar; %AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar; %AXIS_LIB%\wsdl4j.jar;set CLASSPATH=%CLASSPATH%;%AXISCLASSPATH%然后,从解压后的目录中拷贝\webapps\axis目录到Tomcat的\webapps目录下,启动Tomcat,在浏览器中输入网址http://localhost:8080/axis,如果出现如图16-3的画面,则说明安装成功。
图 16-3接下来,进行Axis的开发。
1. 打开MyEclipse,新建一个Web project,取名myWeb Service。
将下载的Axis1_4中lib文件夹下的所有包拷贝到项目文件中的webroot\WEB_INF\lib文件夹下。
⽤eclipse开发WebService⼀、准备⼯作。
1、⾸先下载eclipse⽤于开发WebService的相关插件。
该插件在eclipse站点有下。
我下的是包含该插件的全套eclipse的SDK:wtp-all-in-one-sdk-R-1.0.2-200604280245-win32.zip共186兆多。
A、解压该⽂件;B、安装⾃⼰插件,把插件⽤LINK⽬录建⽴关联。
(如:TOMCAT等)C、配置好⾃⼰的eclipse,这个不⽤多说了。
2、下载TOMCAT。
我⽤的是TOMCAT5.0.16。
3、下载最新的AXIS。
这⾮常重要。
我以前就是因为使⽤了旧版的AXIS(AXIS1。
1),最后导致⽣成的WEBSERVICE调⽤程序编译失败。
现在我使⽤AXIS1。
4A、解压AXIS,把axis-1_4\webapps\axis\WEB-INF\lib中的⽂件复制到$TOMCATHOME$\common\lib中。
⼆、开始开发WEBSERVICE。
1、⾸先NEW ⼀个 PROJECT。
WEB-》动态WEB PROJECT。
2、改变项⽬的输出路径为:项⽬名称/WebContent/WEB-INF/classes原来的为:项⽬名称/BUILD这样发布WEB 服务⽐较⽅便。
3、建⽴⼀个⽤于发布WEB服务的JAVA类。
public class test2 {public String sayHi(String name){return "hi,"+name;}}4、发布该类为WEB服务。
右击test2.java->web services->create web services选中test the web services。
(以后可以⽴即测试该web services)其他不⽤多说。
往下。
直到出现需要启动TOMCAT的提⽰。
然后启动TOMCAT,系统⾃动把WEB SERVICE发布到TOMCAT中。
服务端(为客户端提供Webservice接口):使用工具:myeclipse-8.6.1-win32,apache-tom cat-7.0.11开发步骤:1.创建工程File->New->Web Service Project,弹出Web Service Project窗口,需要填写Project Nam e(例子是Demo),选择XFire,然后一路next,直到完成。
创建完成后,打开生成的web.xml文件,可以看到,XFire已经配置好了。
1<?xml version="1.0" encoding="UTF-8"?>2<web-appxmlns="/xml/ns/javaee"xmlns:xsi="/2001/X MLSchema-instance"version="2.5"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd">3<servlet>4<servlet-name>XFireServlet</servlet-name>5<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</ servlet-class>6<load-on-startup>0</load-on-startup>7</servlet>8<servlet-mapping>9<servlet-name>XFireServlet</servlet-name>10<url-pattern>/services/*</url-pattern>11</servlet-mapping>12<welcome-file-list>13<welcome-file>index.jsp</welcome-file>14</welcome-file-list>15</web-app>2.创建WebService服务选择Toolbars上的New Web Service,弹出New Web Service窗口,选择Strategy:Create web service from Java class(Bottom-up scenario)并勾选下面的Create new Java bean,然后Next>,在Web service nam e中填写MyService,在Java package栏点击New...弹出窗口中Nam e:中填com.demo.service,然后点Finish。
MyEclipse开发⼀个webservice接⼝
⼀直以来对于接⼝这个东西都很好奇,各种客户也⼀直在说那个什么什么数据我们提供给你们⼀个接⼝就好了,结果还是不是很明⽩.于是乎就有了下⾯的⼩故事,接下来我们就进⼊正⽂吧
---⼤概可以分为这样的步骤
1:新建webservice project,Framework版本选择JAX-WS
2:编写测试类,写⼀个简单的AddUser⽅法
3:在webservice project 上⾯ new webservice
确定后,在project和接⼝主类同⼀⽬录会⽣成⼀个Delegate.Java
4:加⼊JAX-WS-2.1 ⽀持包
5:启动tomcat,发布webservice project
从上⾯可以看到接⼝返回了⼀个定义好的XML格式的⽂件,⾥⾯正是我们接⼝类⾥⾯写的对象adduser通过URL可以访问接⼝并且返回XML格式则说明接⼝开发完毕。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
使用Myeclipse8.5开发基于JAX-WS的Web service实例本文为Web service开发入门篇,主要介绍在Myeclipse8.5环境下开发Web service的服务程序和客户端程序的基本流程。
在Weblogic10.3.4中部署Web service服务。
开发环境如下:JAVA IDE:Myeclipse8.5Web server:Weblogic10.3.4开发Web service服务程序,需要了解以下相关内容,WSDL,SOAP,XML。
这些是组成Web service的基础。
在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire。
其中系统建议不要使用XFire的框架,可能是要被淘汰了(deprecated)。
我们选择的是JAX-WS框架。
这个需要Java EE5.0的支持。
所以后面选择Web server容器的时候,是要能支持Java EE5.0的才可以部署成功。
(一)Web service服务端开发1.新建一个Web service project,菜单File->New->Web Service Project,在上面的框中输入项目名myWebSvc,框架选择JAX-WS,J2EE只能选择Java EE5.0。
Finish完成项目新建。
2.新建一个Java Bean,就是一个普通的Class,File–>New->Class,包名输入com.myweb.ws,类名输入SayHello,Finish结束新建类。
在类中加入一个方法sayHaha如下,package com.myweb.ws;public class SayHello{public String sayHaha(String request){return"Haha,"+request+",O.K.!";}}3.新建一个Web service,菜单File–>New->Other->MyEclipse->Web Services-> Web Service,Next进入下一步,选择Create web service from java class(Bottom-up scenario),Next进入下一步,Java class输入com.myweb.ws.SayHello,选中Generate WSDL in project选项,Finish结束新建。
Eclipse配置开发Webservice过程编写人:何冰一、在开发环境中,创建一个WebService首先将nc.uap.mde.wstools_1.0.3.jar放到Eclipse下的plugins目录下。
在Eclipse中新建一个工程,创建一个Webservice接口,和接口实现类:样例代码:public interface IHelloWorld {public String sayHelloName(String userid, String name);}package nc.esb.test;public class HelloWorldImpl implements IHelloWorld {public String sayHelloName(String userid, String name) { String strSay = "Welcome "+ userid + " : "+ name + " to UFIDA !";return strSay;}}然后在接口上点击右键,选择“WS Tools”-> “Public Web Service”,如图:下一步:下一步:下一步:不需要修改,直接点下一步.在下面的页面中,必须将”是否要求认证授权”的勾去掉,然后点击”Finish”.在开发环境中运行中间件:如果有如下显示,则表明Webservice部署正确:找到自己开发的接口,点击进入,并将IP地址记录下来,在ESB界面中需要用它来完成“新建组件”的“服务”导入。
二、使用soapUI工具进行Webservice接口测试找到soapUI接口测试工具,打开soapUI(接口测试工具)\bin\soapui-pro.bat,运行界面如图:在界面中,在“Porject”上点击右键,选择“New WSDL Project”,如图:在弹出的对话框中,”Project Name”中录入test,”Initial WSDL”中录入http://127.0.0.1:9877/Hellobingbing?wsdl,如图:注意:”Initial WSDL”中录入的http://127.0.0.1:9877/Hellobingbing?wsdl来源于ESB中消息流配置的“服务发布”中的“URL地址”,然后在URL后加上“?wsdl”,如图:然后在左边窗口中显示的接口信息中,展开树形结构,鼠标双击“Request 1”,然后在右边显示的窗口中,录入参数,最终点击绿色的运行箭头,如图:点击绿色箭头后,系统运行Webservice进行测试,然后输出结果,如图:。
JavaWebService简单实例(附实例代码)前⾔:朋友们开始以下教程前,请先看第五⼤点的注意事项,以避免不必要的重复操作。
⼀、准备⼯作(以下为本实例使⽤⼯具)1、MyEclipse10.7.12、JDK 1.6.0_22⼆、创建服务端1、创建【Web Service Project】,命名为【TheService】。
2、创建【Class】类,命名为【ServiceHello】,位于【com.hyan.service】包下。
3、编写供客户端调⽤的⽅法,即编译⽅法代码。
4、进⾏编译说明:编译失败的话,请将该项⽬引⽤的jdk设置为1.6.0_17版本或更⾼版本5、测试结果三、⽣成客户端1、创建【Web Service Project】,命名为【TheClient】。
2、命令提⽰窗⼝执⾏⽣成命令。
格式:wsimport -s "src⽬录" -p “⽣成类所在包名” -keep “wsdl发布地址”⽰例:复制代码代码如下:wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl 说明:1)"src⽬录"地址不可含空格2)“wsdl发布地址”不要漏了“?wsdl”3、刷新项⽬,检查⽣成类四、最终测试1、创建【Class】类,命名为【ServiceTest】,位于【com.hyan.test】包下。
2、编写测试⽅法,调⽤服务端⽅法,并打印返回的结果。
五、注意事项1、JDK版本过低问题报类似如下的异常:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them?原因:JDK版本低于1.6.0_17解决⽅法:调整该服务端项⽬所引⽤的JDK版本为安装的⾼版本JDK2、⽣成命令路径含空格问题报类似如下的异常:directory not found: G:\SVN_FILE\GB\05原因:客户端src路径不可含有空格解决⽅法:在不含空格路径的⽂件夹下重新创建客户端即可。
使用Myeclipse 开发基于JAX-WS的Web service实例
本文为Web service 开发入门篇,主要介绍在Myeclipse 环境下开发Web service的服务程序和客户端程序的基本流程。
在Weblogic 10.3.4 中部署Web service服务。
开发环境如下:
JAVA IDE:Myeclipse
Web server:Weblogic
开发Web service服务程序,需要了解以下相关内容,WSDL, SOAP, XML。
这些是组成Web service 的基础。
在下开发Web service程序,目前系统支持的开发框架有3个,
JAX-WS,REST(JAX-RS),XFire。
其中系统建议不要使用XFire 的框架,可能是要被淘汰了(deprecated)。
我们选择的是JAX-WS框架。
这个需要Java EE 的支持。
所以后面选择Web server容器的时候,是要能支持Java EE 的才可以部署成功。
(一)Web service服务端开发
1. 新建一个Web service project, 菜单File -> New -> Web Service Project,
在上面的框中输入项目名myWebSvc,框架选择JAX-WS, J2EE只能选择Java EE 。
Finish完成项目新建。
2. 新建一个Java Bean, 就是一个普通的Class, File –> New -> Class,
包名输入类名输入SayHello, Finish 结束新建类。
在类中加入一个方法sayHaha如下,
package
public class SayHello
{
public String sayHaha(String request)
{
return "Haha, " + request + ", . !";
}
}
3. 新建一个Web service,菜单File –> New -> Other -> MyEclipse -> Web Services -> Web Service,
Next 进入下一步,
选择Create web service from java class(Bottom-up scenario),Next进入下一步,
Java class 输入选中Generate WSDL in project 选项,Finish 结束新建。
生成新的服务代理类,
生成WSDL定义文件,WebRoot\WEB-INF\wsdl\ WebRoot\WEB-INF\wsdl\,
(二)部署Web service 服务
1. Window -> Show View -> Servers, 这里前提是已经安装完成Weblogic10.3.4,
在Weblogic 上点右键,选择Add Deployment 部署myWebSvc,
Finish结束部署。
2. 重启Weblogic 服务,在浏览器输入,如果显示正确,则服务发布成功。
3. 在创建Web service 项目的过程中,如果加入了JAX-WS Runtime / API 库,在部署Web service时,会报错误,
2011-10-13 17:28:22 [ getPolicySubjects
严重: [failed to localize]
WSP_1014_POLICY_REFERENCE_DOES_NOT_EXIST(zip:D:/bea/weblogic1034/webd omain/servers/AdminServer/tmp/_WL_user/_appsdir_WebServicePro_dir/achpn5/war/W EB-INF/lib/!/WEB-INF/wsdl/#Addressing_policy)
2011-10-13 17:28:22 [ finished
严重: [failed to localize]
WSP_1014_POLICY_REFERENCE_DOES_NOT_EXIST(zip:D:/bea/weblogic1034/webd omain/servers/AdminServer/tmp/_WL_user/_appsdir_WebServicePro_dir/achpn5/war/W EB-INF/lib/!/WEB-INF/wsdl/#Addressing_policy)
2011-10-13 17:28:22 [ finished
严重: [failed to localize]
WSP_1018_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL()
[failed to localize]
WSP_1014_POLICY_REFERENCE_DOES_NOT_EXIST(zip:D:/bea/weblogic1034/webd omain/servers/AdminServer/tmp/_WL_user/_appsdir_WebServicePro_dir/achpn5/war/W EB-INF/lib/!/WEB-INF/wsdl/#Addressing_policy)
at
只要删去JAX-WS这两个包,再重新部署就可以了。
4. 如果在Tomcat 上部署,则需要加上JAX-WS API / Runtime 两个库,否则会报错,
严重: Error configuring application listener of class
(三)Web service 客户端开发
1. 新建Java project, File -> New -> Java Project,
输入项目名UseWS, Finish 结束新建。
2. 新建Web service client程序,File –> New -> Other -> MyEclipse -> Web Services -> Web Service Client,
Next 进入下一步,
WSDL File 为Web Service 的WSDL文件
E:\workspace\myWebSvc\WebRoot\WEB-INF\wsdl\ Next进入下一步,
Finish 结束新建。
3. 新建一个Test类,用来调用SayHelloService, File -> New -> Class,
Finish 结束类的新建。
修改类如下:
import
import
public class Test
{
public static void main(String[] args)
{
String request = "World";
String response = null;
SayHelloService sayHelloSvc = new SayHelloService();
SayHelloDelegate sayHelloDgt = ();
response = (request);
}
}
4. 运行项目,发现一个错误,
Exception in thread "main" HTTP transport error: Connection refused: connect at
at
at
at
at
at
at
at
at
at
at
at
at $(Unknown Source)
at :15)
Caused by: Connection refused: connect at Method)
at
at
at
at
at
at
at
at
at
at
at
at
at
at
at
... 14 more
错误显示是Connection refused,查看了文件,发现这里的配置文件中,标签service 的soap:address location 的端口是8080,而Weblogic中我们用的默认端口是7001,于是修改端口号为7001,
<service name="SayHelloService">
<port binding="tns:SayHelloPortBinding" name="SayHelloPort">
<soap:address location=""/>
</port>
</service>
修改为
<service name="SayHelloService">
<port binding="tns:SayHelloPortBinding" name="SayHelloPort">
<soap:address location=""/>
</port>
</service>
另外,如果不在同一台机器上测试,这里的localhost应该改为相应的IP地址。
修改后测试,显示成功。
Haha, World, . !。