eclipse+AXIS开发webservice
axis2 WebService 开发指南
![axis2 WebService 开发指南](https://img.taocdn.com/s3/m/0afb5fb869dc5022aaea000c.png)
Axis2.x WebService上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。
Axis1.x在线博文:/hoojo/archive/2010/12/20/1911349.html一、准备工作1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。
下载地址:/axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。
下载页面:/axis2/java/core/tools/index.htmlService Archive Wizard - Eclipse Plug-inCode Generator Wizard - Eclipse Plug-in2、安装eclipse插件如果你的eclipse插件安装成功后,会看到如下效果:3、分析axis2-bin文件目录结构下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。
Tomcat启动后,在浏览器中输入:http://localhost:8080/axis2/你可以看到二、Axis2的简单WebService示例注意,上面的HelloWorldService是没有package的。
Axis2从入门到精通--Webservice在eclipse下开发教程
![Axis2从入门到精通--Webservice在eclipse下开发教程](https://img.taocdn.com/s3/m/212d1eebe009581b6bd9eb69.png)
Axis2 教程文章分类:Java编程Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。
Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。
这些都将在后面的系列教程中讲解。
在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService。
一、Axis2的下载和安装读者可以从如下的网址下载Axis2的最新版本:/axis2/在本文使用了目前Axis2的最新版本1.4.1。
读者可以下载如下两个zip包:axis2-1.4.1-bin.zipaxis2-1.4.1-war.zip其中axis2-1.4.1-bin.zip文件中包含了Axis2中所有的jar文件,axis2-1.4.1-war.zip文件用于将WebService发布到Web容器中。
将axis2-1.4.1-war.zip文件解压到相应的目录,将目录中的axis2.war文件放到<Tomcat安装目录>\webapps目录中(本文使用的Tomcat的版本是6.x),并启动Tomcat。
在浏览器地址栏中输入如下的URL:http://localhost:8080/axis2/如果在浏览器中显示出如图1所示的页面,则表示Axis2安装成功。
图1二、编写和发布WebService对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。
在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。
其中POJO中所有的public方法将被发布成WebService方法。
下面我们来实现一个简单的POJO,代码如下:public class SimpleService{public String getGreeting(String name){return "你好 " + name;}public int getPrice(){return new java.util.Random().nextInt(1000);}}在SimpleService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。
利用axis开发WebService(4)_下_如何抛出自定义异常
![利用axis开发WebService(4)_下_如何抛出自定义异常](https://img.taocdn.com/s3/m/3300d1c24028915f804dc23e.png)
type="java:com.chnic.exception.NoSuchUserException"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
xmlns:fns="http://faults.samples"
class="samples.faults.NoSuchEmployeeFault"
type="tns:NoSuchUserFault"
encodingStyle="/soap/encoding/"/>
</service>
</deployment>
<deployment xmlns="/axis/wsdd/"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
Java代码
package com.chnic.test;
import java.rmi.RemoteException;
import space.QName;
import javax.xml.rpc.Call;
returnType="rtns:User"
NC开发webservice
![NC开发webservice](https://img.taocdn.com/s3/m/40080970f242336c1eb95e26.png)
Nc 开发webservice1.下载 eclipse-wtp-all ,集成了webservice开发插件下载eclipse-ncplugin nc开发插件,下载axis1.4以上下载可以到/xmglnet/kmp/add_show_list.asp?id=2660#hh webservice工具下载 下进行下载,jdk版本选择1.5以上下载 axis1.4 解压缩把其webapps目录下axis放到nchome/hotweb下,其中的lib下jar 包 要删除一些,不要和nchome/lib里的重复,保留四个axis.jar,axis-ant.jar,saaj.jar,wsdl4j-1.5.1.jar就可以2, 创建一个Webservice服务。
在eclipse中创建一个动态的web工程。
New->Project ->Dynamic Web Project。
在Target Runtime中设置服务,这里选择 apache-tomcat-V5.5,并设置tomcat目录3在工程的src下,写一个service类,比如:public class test2 {public String sayHi(String name){return"hi,"+name;}}public String sayHi(String name)就是要调用的远程方法在这个类的文件名上点击右键,选择”Web Services"->“Create Web Service”,就会出现下面的界面:要选上TestClient,这样创建Service的同时,会创建一个Service的test工程点击next选择方法名称如果点击“Launch”会打开刚才创建的WebService的测试界面,可以进行测试。
LogonWebServiceTest工程中。
点击“next”,会自动生成代理类,并出现选择测试方法的界面。
WebService接口实例说明文档
![WebService接口实例说明文档](https://img.taocdn.com/s3/m/b619d042c850ad02de8041c4.png)
WebService接口说明文档文档说明本文档主要讲述如何用C Sharp创建一个简单的Web Service接口,并使用Java调用这个Web Service接口。
准备工作系统环境:安装JDK1.6或更新版本开发工具:Microsoft Visual Studio 2012、MyEclipse 10.5、axis2-1.6.2C Sharp服务端1.首先,创建一个Web Service项目。
依次点击:文件—新建—项目,在弹出的新建项目窗口中选择Web下的 空 Web 应用程序。
如下图:2.接下来我们需要创建我们的Web Service接口实现文件。
鼠标右击我们的项目,依次点击:添加—新建项,在弹出窗口中选择Web 服务。
可修改新建项的文件名,注意文件名后缀后.asmx。
如下图:新建完成后我们的项目结构如下:3.打开我们新建的MyService.asmx下的MyService.asmx.cs文件,可以看到其中已经有默认的HelloWorld方法。
我们可以直接运行查看下运行的效果,效果如下图:点击HelloWorld,再点击调用可以看到页面返回:4.接下来我们完善我们的Web Service接口功能。
主要对Web Service接口进行参数类型的测试,文本型、布尔型、数值型、类(Class)等。
新增Add()等运算方法:新增strcat()连接字符串方法:新增GetBool()返回布尔值方法:新增GetTest()返回测试类,并新增Test类运行我们的项目,可以看到我们的结果如下图:点击add方法测试:输入add的参数i和j点击调用按钮,可以看到返回计算结果:5.到此为止我们C Sharp创建的Web Service程序完成。
接下来看Java如何调用我们的Web Service接口。
Java调用Web Service准备对于一个Web Service接口我们当前只知道访问的地址,我们如何用Java去访问接口呢?已知Web Service接口地址:http://localhost:11766/MyService.asmx?WSDLJava调用Web Service的方式有以下1.使用HttpClient2.使用Xfire3.使用axis2本文档示例选择的是axis2,首先到axis2网站下载axis2,网址:/axis2/java/core/download.cgi当前最新版本1.6.2。
webservice五种发布方式及客户端调用
![webservice五种发布方式及客户端调用](https://img.taocdn.com/s3/m/46fcafbc2e3f5727a4e962be.png)
WebService 四种发布方式总结Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6。
1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6。
2。
jar”报错,报的错为: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文件,如下(重要的地方已标记):〈context—param>〈param-name>contextConfigLocation〈/param—name〉<param-value〉classpath:/applicationContext.xml</param-value〉</context—param>〈listener〉<listener—class〉org.springframework.web。
context。
ContextLoaderListener〈/listener—class〉</listener〉〈!—- Character Encoding filter --〉<filter〉〈filter—name〉encodingFilter</filter-name〉<filter-class>org.springframework。
axis总结
![axis总结](https://img.taocdn.com/s3/m/5cde35fb04a1b0717fd5dd3d.png)
实现一个简单的axis实例:axis配置:配置环境:Eclipse3.3.2+Tomcat5.5+jdk1.5+axis1.4配置流程:1、下载axis-bin-1_4.zip后,将其解压。
2、在Eclipse中新建一个web工程,名字为axis3、在解压出的axis-1_4文件夹下webapps\axis下的所有文件,copy到axis/WebContent下。
启动Tomcat之后,输入http://localhost:8888/axis/。
将出现如下页面:可以点击Validation来检查框架所需要的类,包等是否齐全。
至此,axis框架搭建好了,可以写自己的Webservice了。
写一个例子axis下有两种方式发布webService,一种是直接写xxx.jws文件放置在工程目录下,其次是以services方式发布。
jws方式布置在WebContent下新建一个文件,名为hello.jws。
将如下测试代码添加。
public class hello{public String hello(String name){if(name==null)name = "";return"你好"+name+",欢迎来到Web服务的世界!";}}保存后启动Tomcat,输入网址http://localhost:8888/axis/hello.jws。
出现如下页面:点击上面的链接,将出现服务所对应的wsdl。
如果已经启动Tomcat,可以不用重启。
services方式布置引用:jws与services方式布置对比使用jws文件的方式编写Web服务具有方便、快捷的优点,它可以很快的将你已有的类发布成Web服务。
但是更多的时候这并不是一个好的主意,因为这种做法引发的问题是我们必须要将已有类的源码发布出来,因为更多的时候我们并不想这样做;另外虽然你可以先用工具开发并调试完毕一个java文件后再改名为jws,但是这多少有些不方便,而且并不是类中的所有方法你都想发布成可通过Web服务来访问的,这时候你就必须将这些方法的修饰符改为不是public的,这就跟你原有的类不同步,以后的修改将会更加的麻烦。
axis2之webservice新手超详细教程
![axis2之webservice新手超详细教程](https://img.taocdn.com/s3/m/6eae036d011ca300a6c390a4.png)
A XIS2之WEBSERVICE新手超详细教程---------------尚明Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。
Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON 等技术,本教程是主要阐述如何构建一个基本的Axis2 webservice应用,里面的许多环节高手可直接略过,本教程完全针对新手。
一、环境安装安装myeclipse下载地址:/file/4238159/48030981-6b56-40a4-a93b-8f424ee4f33a安装mysql下载地址:/file/4238159/de64cf2f-4217-4e11-bb98-8e6c5dd24155安装mysql-workbench(mysql可视化工具)下载地址:/file/4238159/becf913f-56a6-4d68-b248-134113b73535安装tomcat下载地址:/file/4238159/ec6a2250-99ff-464e-a978-be184c96e4e7下载Axis2服务包下载地址:/file/4238159/bb3db6e3-2f7d-4343-b472-c1fa714dba95下载Axis2开发插件包下载地址:/file/4238159/aa39505f-079b-43be-9479-15a2d3e98cbb安装jdk下载地址:/file/4238159/7ba342f9-277f-4b9c-b5e7-b0c5b7dfc151二、环境配置1)Java环境配置a)设置JAVA_HOME图1.图2设置JAVA_HOME=D:\Program Files\Java\jdk1.6.0_10* D:\Program Files\Java\jdk1.6.0_10为笔者本机的JDK安装目录,请开发者根据实际安装路径来填写,注意环境变量最后面不能加分号,D:\Program Files\Java\jdk1.6.0_10;这么写是错误的。
eclipse根据wsdl文件生成webservice客户端-图例
![eclipse根据wsdl文件生成webservice客户端-图例](https://img.taocdn.com/s3/m/36422e257375a417866f8f78.png)
eclipse根据wsdl文件生成webservice客户端一、前期准备: (1)1、配置log4j (1)2、log4j使用jar包: (2)3、wsdl使用jar包: (2)二、开始生成文件: (2)一、前期准备:1、配置log4j没有配置的场合提示下列的信息(可以不配置):(log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).log4j:WARN Please initialize the log4j system properly.Error: Missing argument to option -p)log4j.properties文件内容:log4j.rootLogger=info,stdout,R######################### Console Appender#######################log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%X{LKV}%d{yyyy-MM -dd HH:mm:ss,SSS}%c%t%L%p-%m%n######################### File Appender#######################log4j.appender.R=org.apache.log4j.DailyRollingFileAppender#log4j.appender.R.File=${WORKDIR}/TestWebService/WebRoot/logs/out.log#log4j.appender.R.File=${catalina.home}/WebRoot/logs/out.loglog4j.appender.R.File=D:/logs/TestWebService.loglog4j.appender.R.DatePattern = '.'yyyy-MM-ddyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%X{LKV}%d{yyyy-MM-dd HH:mm:ss,SSS}%c%t%L%p-%m%n######################### log level#######################.ibatis=debugmon.jdbc.SimpleDataSource=debugmon.jdbc.ScriptRunner=debug.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=d ebuglog4j.logger.java.sql.Connection=debuglog4j.logger.java.sql.Statement=debuglog4j.logger.java.sql.PreparedStatement=debug,stdoutlog4j.logger.java.sql.PreparedStatement=debug,stdout,R.jiahelife=debug.jiahelife.platform=error2、log4j使用jar包:log4j-1.2.8.jarcommons-discovery-0.2.jarcommons-logging.jar3、wsdl使用jar包:axis.jarwsdl4j-1.5.1.jar二、开始生成文件:具体操作如下图:然后点击Search按钮进入如下的画面,在输入框中输入WSDL2Java点击【OK】按钮进入下图:点击Arguments 的页面,进行如下设置: 12说明:1、WSDL文件生成的XML文件2、XML文件所在工作目录,以及生成后java文件的存放目录。
webservice实现有多种方式
![webservice实现有多种方式](https://img.taocdn.com/s3/m/8428eed6d5bbfd0a78567306.png)
webservice实现有多种方式比如最常用的有axis框架,xfire框架,通过该框架可以发布wsdl接口,也可以实现webservice客户端,目前eclipse都有集成的插件,可以根据wsdl文件生成webservice客户端调用接口,但是这样部署的时候必须依赖框架的jar包,有时候可能因为环境等等原因,我们仅仅需要wsdl中的某一个接口,这时候可以通过http接口或socket接口直接发生xml 数据,来调用服务端webservice服务,其实webservice底层还是发送xml数据,只是框架封装了对xml数据进行序列化与反序列化操作,下面以两个简单的例子说明http方式和socket方式。
http实现webservice接口调用例子:[c-sharp]view plain copy1.import <a href="/base/17"class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.io.Buffe redReader;2.import java.io.IOException;3.import java.io.InputStreamReader;4.import java.io.OutputStreamWriter;5.import java.io.UnsupportedEncodingException;6.import .MalformedURLException;7.import .URL;8.import .URLConnection;9.10.public class HttpPostTest {11.void testPost(String urlStr) {12.try {13. URL url = new URL(urlStr);14. URLConnection con = url.openConnection();15. con.setDoOutput(true);16. con.setRequestProperty("Pragma:", "no-cache");17. con.setRequestProperty("Cache-Control", "no-cache");18. con.setRequestProperty("Content-Type", "text/xml");19.20. OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());21. String xmlInfo = getXmlInfo();22.out.write(new String(xmlInfo));23.out.flush();24.out.close();25. BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));26. String line = "";27. StringBuffer buf = new StringBuffer();28.for (line = br.readLine(); line != null; line = br.readLine()) {29. buf.append(new String(line.getBytes(),"UTF-8"));30. }31. System.out.println(buf.toString());32. } catch (MalformedURLException e) {33. e.printStackTrace();34. } catch (IOException e) {35. e.printStackTrace();36. }37. }38.39.private String getXmlInfo() {40.// 通过wsdl文件可以查看接口xml格式数据,构造调用接口xml数据41. String xml = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=/"http://schemas.xml/soap/envelope//" xmlns:SOAP-ENC=/"/soap/e ncoding//" xmlns:xsi=/"/2001/XMLSchema-instance/" xmlns:xsd =/"/2001/XMLSchema/">"42. + "<SOAP-ENV:Body>"43. + "<m:getItemDetailSingle xmlns:m=/"http:xxxxxxxxxxxxxxxxxx//">"44. + "<itemMo>"45. + "<category>工厂类</category>"46. + "<city>北京</city>"47. + "<flag>1</flag>"48. + "<itemId>0</itemId>"49. + "<itemIndex>1</itemIndex>"50. + "<keyword></keyword>"51. + "<mobile>2147483647</mobile>"52. + "<password>123456</password>"53. + "<userName>sohu</userName>"54. + "</itemMo>"55. + "</m:getItemDetailSingle>"56. + "</SOAP-ENV:Body>"57. + "</SOAP-ENV:Envelope>";58.return xml;59. }60.61.public static void main(String[] args) throws UnsupportedEncodingException {62. String url = "http://localhost:9003/dataService/services/Job";63.new HttpPostTest().testPost(url);64. }65.}socke方式实现例子:[c-sharp]view plain copy1.import java.io.IOException;2.import java.io.InputStream;3.import java.io.InputStreamReader;4.import java.io.OutputStream;5.import .Socket;6.import .UnknownHostException;7.8.9.public class WebServiceClient {10.11./**12. * @param args13. * @throws IOException14. * @throws UnknownHostException15. */16.public static void main(String[] args) throws UnknownHostException, IOException {17. Socket socket = new Socket("localhost",9003);18. OutputStream os = socket.getOutputStream();19. InputStream is = socket.getInputStream();20.//System.out.println(socket.isConnected());21. String httpSend = "POST /dataService/services/Job HTTP/1.1/r/n"22. + "Content-Type:text/xml/r/n"23. + "Host:localhost:9003/r/n"24. + "Content-Length:1024/r/n"25. + "/r/n"26. + "<SOAP-ENV:Envelope xmlns:SOAP-ENV=/"http://schema/soap/envelope//" xmlns:SOAP-ENC=/"/s oap/encoding//" xmlns:xsi=/"/2001/XMLSchema-instance/" xmln s:xsd=/"/2001/XMLSchema/">"27. + "<SOAP-ENV:Body>"28. + "<m:getItemDetailSingle xmlns:m=/"http://localhost//">"29. + "<itemMo>"30. + "<category>工厂类</category>"31. + "<city>北京</city>"32. + "<flag>1</flag>"33. + "<itemId>0</itemId>"34. + "<itemIndex>1</itemIndex>"35. + "<keyword>String</keyword>"36. + "<mobile>2147483647</mobile>"37. + "<password>123456</password>"38. + "<userName>sohu</userName>"39. + "</itemMo>"40. + "</m:getItemDetailSingle>"41. + "</SOAP-ENV:Body>"42. + "</SOAP-ENV:Envelope>";43. os.write(httpSend.getBytes());44. os.flush();45.46. InputStreamReader ireader = new InputStreamReader(is);47. java.io.BufferedReader breader = new java.io.BufferedReader(ireader);48.49. String responseLine = "";50.51.while((responseLine = breader.readLine()) != null)52. {53. System.out.println(new String(responseLine.getBytes(),"UTF-8"));54. }55.56. System.out.println("");57.58. }59.60.}。
Eclipse配置 Axis2并开发一个简单的webservice程序
![Eclipse配置 Axis2并开发一个简单的webservice程序](https://img.taocdn.com/s3/m/99302c1b52ea551810a68746.png)
一.在Eclipse中配置Axis2插件。
1.下载Axis2插件(Axis2官网:/axis2/java/core/download.html)2. 配置Eclipse Axis2插件把axis2-eclipse-codegen-plugin-1.7.1.zip和axis2-eclipse-service-plugin-1.7.1.zip文件里面的jar文件解压出来,放到eclipse目录下的dropins文件夹下,并新建一个txt文件,写入dropins目录的绝对路径,保存后更改文件格式为.link。
重启Eclipse,然后点击File-> New->Other->Axis2 Wizards即可看到axis2功能是否配置成功。
二.用Eclipse开发Axis2服务端1.解压axis2-1.7.1-bin.zip和axis2-1.7.1-war.zip文件,axis2-1.7.1-bin的解压文件夹随便放在一个目录下即可,axis2-1.7.1-war解压后的axis2.war文件放在tomcat目录的webapp文件夹下。
启动tomcat并输入http://localhost:8080/axis2即可看到如下画面。
2.新建Java Project,目录如下图所示(该示例主要展示了如何把配置文件也打包进aar文件),把axis2-1.7.1-bin的lib目录下的全部.jar文件(其实这些包是给客户端使用的,而且只需要其中一部分即可,为了方便才全部复制)全部复制到lib目录下,然后build path进项目中,建立如下文件:com.axis.server包下的文件AxisServer.java和User.java;resources 包下的文件application.properties。
3.生成aar文件:File->New->Other->Axis2 Wizards->Axis2 Service Archiver,并按下图流程进行即可生成aar文件。
使用axis自动生成webservice客户端代码
![使用axis自动生成webservice客户端代码](https://img.taocdn.com/s3/m/ab0a8b2dcfc789eb172dc814.png)
利用AXIS生成客户端文件,使得开发webservice更加简单,以下是我的个人代码,工具:Myeclipse7.0,axis1.4,tomcat5.5,jdk1.5一、下载axis的jar包,我的是axis-bin-1_4.zip包,解压后有axis的lib目录,一会儿我们要用,二、在myeclip se中创建自己的webservice工程,这个在的文库里有,三、在C盘目录下创建一个批处理文件,我的名字是wsdltojava.bat,内容如下:set Axis_Lib=E:\jar\axis\asixTool\axis-bin-1_4\axis-1_4\libset Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%set Axis_Servlet=http://localhost:8090/myAxis/services/HelloWorld?wsdl %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet%备注:红色字体我的axis的目录,也就是刚才我解压出来的axis,蓝色是我的webservice的访问地址,其他的不用处理,然后双击这个文件,产生以下几个文件:(1)、目录是:C:\localhost\myAxis\services\HelloWorld(2)、四、将这四个文件拷贝到你的客户端,创建客户端运行即可附录代码:服务端HelloWorld.javapackage webservice.axis.test;public class HelloWorld {public String hello(){return"Hello "+"aaaaaaaaaaaaaaaaaa";}}客户端(通过刚才命令生成的四个文件)HelloWorld.java/*** HelloWorld.java** This file was auto-generated from WSDL* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.*/package webservice.axis.test.batClient;public interface HelloWorld extends java.rmi.Remote {public ng.String hello() throws java.rmi.RemoteException;}HelloWorldService.java/*** HelloWorldService.java** This file was auto-generated from WSDL* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.*/package webservice.axis.test.batClient;public interface HelloWorldService extends javax.xml.rpc.Service {public ng.String getHelloWorldAddress();public webservice.axis.test.batClient.HelloWorld getHelloWorld() throwsjavax.xml.rpc.ServiceException;public webservice.axis.test.batClient.HelloWorld getHelloWorld(.URL portAddress) throws javax.xml.rpc.ServiceException;}HelloWorldServiceLocator.java/*** HelloWorldServiceLocator.java** This file was auto-generated from WSDL* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.*/package webservice.axis.test.batClient;public class HelloWorldServiceLocator extends org.apache.axis.client.Service implements webservice.axis.test.batClient.HelloWorldService {public HelloWorldServiceLocator() {}public HelloWorldServiceLocator(org.apache.axis.EngineConfiguration config) { super(config);}public HelloWorldServiceLocator(ng.String wsdlLoc, space.QName sName) throws javax.xml.rpc.ServiceException {super(wsdlLoc, sName);}// Use to get a proxy class for HelloWorldprivate ng.String HelloWorld_address = "http://localhost:8090/myAxis/services/HelloWorld";public ng.String getHelloWorldAddress() {return HelloWorld_address;}// The WSDD service name defaults to the port name.private ng.String HelloWorldWSDDServiceName = "HelloWorld";public ng.String getHelloWorldWSDDServiceName() {return HelloWorldWSDDServiceName;}public void setHelloWorldWSDDServiceName(ng.String name) {HelloWorldWSDDServiceName = name;}public webservice.axis.test.batClient.HelloWorld getHelloWorld() throws javax.xml.rpc.ServiceException {.URL endpoint;try {endpoint = new .URL(HelloWorld_address);}catch (.MalformedURLException e) {throw new javax.xml.rpc.ServiceException(e);}return getHelloWorld(endpoint);}public webservice.axis.test.batClient.HelloWorld getHelloWorld(.URL portAddress) throws javax.xml.rpc.ServiceException {try {webservice.axis.test.batClient.HelloWorldSoapBindingStub _stub = new webservice.axis.test.batClient.HelloWorldSoapBindingStub(portAddress, this);_stub.setPortName(getHelloWorldWSDDServiceName());return _stub;}catch (org.apache.axis.AxisFault e) {return null;}}public void setHelloWorldEndpointAddress(ng.String address) {HelloWorld_address = address;}/*** For the given interface, get the stub implementation.* If this service has no port for the given interface,* then ServiceException is thrown.*/public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {try {if(webservice.axis.test.batClient.HelloWorld.class.isAssignableFrom(serviceEndpointInterface)) { webservice.axis.test.batClient.HelloWorldSoapBindingStub _stub = new webservice.axis.test.batClient.HelloWorldSoapBindingStub(new.URL(HelloWorld_address), this);_stub.setPortName(getHelloWorldWSDDServiceName());return _stub;}}catch (ng.Throwable t) {throw new javax.xml.rpc.ServiceException(t);}throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));}/*** For the given interface, get the stub implementation.* If this service has no port for the given interface,* then ServiceException is thrown.*/public java.rmi.Remote getPort(space.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {if (portName == null) {return getPort(serviceEndpointInterface);}ng.String inputPortName = portName.getLocalPart();if ("HelloWorld".equals(inputPortName)) {return getHelloWorld();}else {java.rmi.Remote _stub = getPort(serviceEndpointInterface);((org.apache.axis.client.Stub) _stub).setPortName(portName);return _stub;}}public space.QName getServiceName() {return new space.QName("http://localhost:8090/myAxis/services/HelloWorld", "HelloWorldService");}private java.util.HashSet ports = null;public java.util.Iterator getPorts() {if (ports == null) {ports = new java.util.HashSet();ports.add(newspace.QName("http://localhost:8090/myAxis/services/HelloWorld", "HelloWorld"));}return ports.iterator();}/*** Set the endpoint address for the specified port name.*/public void setEndpointAddress(ng.String portName, ng.String address) throws javax.xml.rpc.ServiceException {if ("HelloWorld".equals(portName)) {setHelloWorldEndpointAddress(address);}else{ // Unknown Port Namethrow new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);}}/*** Set the endpoint address for the specified port name.*/public void setEndpointAddress(space.QName portName, ng.String address) throws javax.xml.rpc.ServiceException {setEndpointAddress(portName.getLocalPart(), address);}}HelloWorldSoapBindingStub.java/*** HelloWorldSoapBindingStub.java** This file was auto-generated from WSDL* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.*/package webservice.axis.test.batClient;public class HelloWorldSoapBindingStub extends org.apache.axis.client.Stub implements webservice.axis.test.batClient.HelloWorld {private java.util.Vector cachedSerClasses = new java.util.Vector();private java.util.Vector cachedSerQNames = new java.util.Vector();private java.util.Vector cachedSerFactories = new java.util.Vector();private java.util.Vector cachedDeserFactories = new java.util.Vector();static org.apache.axis.description.OperationDesc [] _operations;static {_operations = new org.apache.axis.description.OperationDesc[1];_initOperationDesc1();}private static void _initOperationDesc1(){org.apache.axis.description.OperationDesc oper;org.apache.axis.description.ParameterDesc param;oper = new org.apache.axis.description.OperationDesc();oper.setName("hello");oper.setReturnType(newspace.QName("/2001/XMLSchema", "string"));oper.setReturnClass(ng.String.class);oper.setReturnQName(new space.QName("", "helloReturn"));oper.setStyle(org.apache.axis.constants.Style.RPC);oper.setUse(e.ENCODED);_operations[0] = oper;}public HelloWorldSoapBindingStub() throws org.apache.axis.AxisFault {this(null);}public HelloWorldSoapBindingStub(.URL endpointURL, javax.xml.rpc.Service service)throws org.apache.axis.AxisFault {this(service);super.cachedEndpoint = endpointURL;}public HelloWorldSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {if (service == null) {super.service = new org.apache.axis.client.Service();} else {super.service = service;}((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");}protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { try {org.apache.axis.client.Call _call = super._createCall();if (super.maintainSessionSet) {_call.setMaintainSession(super.maintainSession);}if (super.cachedUsername != null) {_call.setUsername(super.cachedUsername);}if (super.cachedPassword != null) {_call.setPassword(super.cachedPassword);}if (super.cachedEndpoint != null) {_call.setTargetEndpointAddress(super.cachedEndpoint);}if (super.cachedTimeout != null) {_call.setTimeout(super.cachedTimeout);}if (super.cachedPortName != null) {_call.setPortName(super.cachedPortName);}java.util.Enumeration keys = super.cachedProperties.keys();while (keys.hasMoreElements()) {ng.String key = (ng.String) keys.nextElement();_call.setProperty(key, super.cachedProperties.get(key));}return _call;}catch (ng.Throwable _t) {throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);}}public ng.String hello() throws java.rmi.RemoteException {if (super.cachedEndpoint == null) {throw new org.apache.axis.NoEndPointException();}org.apache.axis.client.Call _call = createCall();_call.setOperation(_operations[0]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(newspace.QName("http://test.axis.webservice", "hello"));setRequestHeaders(_call);setAttachments(_call);try { ng.Object _resp = _call.invoke(new ng.Object[] {});if (_resp instanceof java.rmi.RemoteException) {throw (java.rmi.RemoteException)_resp;}else {extractAttachments(_call);try {return (ng.String) _resp;} catch (ng.Exception _exception) {return (ng.String) org.apache.axis.utils.JavaUtils.convert(_resp, ng.String.class);}}} catch (org.apache.axis.AxisFault axisFaultException) {throw axisFaultException;}}}最后要感谢网上资源。
axis2发布服务(WebService)和生成客户端(Client)
![axis2发布服务(WebService)和生成客户端(Client)](https://img.taocdn.com/s3/m/80c5dce65ef7ba0d4a733b5a.png)
一、准备工作1.下载axis2相关jar包目前最新版本为 1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:/axis2/java/core/download.cgi2.下载axis2插件:axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-serv ice-plugin-1.6.2.zip,下载地址:/axis2/jav a/core/tools/index.html3安装Eclipse插件,安装成功如下图:5.新建Web Project(axis2_Serv ice)将axis2-1.6.2-bin\lib下的jar拷贝到axis2_Serv ice\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的conf、modules、services 解压到项目(axis2_Serv ice)WebRoot\WEB-INF下6.修改web.xml文件,添加如下代码:7.添加两个类:bean类和服务类Bean类:package .zjl.entity;import java.io.Serializable;public class User implements Serializable{/****/private static final long serialVersionUID = 1L;private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}要发布的服务类:package .zjl.service;import er;public class UserService {public User getUser(User user) {System.out.println("service:"+user.getId());System.out.println("service:"+user.getName());User po2 = new User();po2.setId(1);po2.setName("zjl");return po2;}}8.Axis2插件工具生成aar文件,发布WebService在项目上右击->new->other选择Axis2 Serv ice Archiv er,点击nextClass File Location选择工程路径下的classes文件,点击Next勾选Skip WSDL项,点击next这里没有jar文件,所以默认,点击Next勾选Generate the serv ice xml automatically项,点击NextServ ice Name 随便写记住就行,Class name包名点类名称点击Load会出现这个类下的所有方法名称,点击NextOutput location选择输出文件位置(具体位置根据具体而定),点击Finsh说明成功。
eclipse创建webservice的两种方法
![eclipse创建webservice的两种方法](https://img.taocdn.com/s3/m/16d37a60783e0912a2162afb.png)
在eclipse 中创建webservice项目方法一:使用xfire支持1.创建Dynamic Web Project 项目:2.将编译路径改为项目/web-INF/classes;3.将META-INF 文件夹移动到src下面,并在META-INF 中创建xfire文件夹,文件夹内放入services.xml文件;4.添加xfire支持的jar包:5.编写web.xml:7.编写services.xml可以存在多个service;8.访问http://localhost:port/projectName/services/url-pattern?wsdl(蓝色字体均为相应的内容);方法二:使用Axis2支持1.1Axis2发行包Axis2以多个发行包发行。
你需要哪个视你所需决定。
1.1.1标准二进制发行包如果你正在开发服务和应用程序,你需要Axis2标准二进制发行包。
这个发行包包括所有必要的*.jar文件,以及很多便于开发用的脚本。
它具有以下结构。
Axis2标准二进制发行包目录的结构binaxis2.bataxis2.shaxis2server.bataxis2server.shjava2wsdl.batjava2wsdl.shwsdl2java.batwsdl2java.shsetenv.shlibactivation-1.1.jar...XmlSchema.jarrepositorymodulesmodules.listaddressing-1.1.mar...servicesservices.listversion.aar...samples...webapp...confaxis2.xmlLICENSE.txtREADME.txtNOTICE.txtINSTALL.txtrelease-notes.htmlbin目录包括一些有用的脚本。
它们包括axis2.bat(或者axis2.sh),这个文件可以让你在不手工添加Axis2 jar文件到类路径的情况下方便的执行Java命令;java2wsdl.bat(和.sh)和wsdl2java.bat(和.sh),它可以让你轻易的从一个WSDL文件生成Java代码,反之亦然;axis2server.bat(和sh),一个简易Web服务器,它可以让你早自己的应用程序中搭建Axis2的功能来发送接收消息。
手把手教你创建axis_webservice
![手把手教你创建axis_webservice](https://img.taocdn.com/s3/m/c56c1c0e844769eae009edc7.png)
本文由xugang1225贡献 doc1。
利用 AXIS 开发 Webservice(一) —— 如何 一 发布自己的 webservice 先介绍下本人开发环境吧。
JDK 1.4.2 + Myeclipse 6.0 (实在经不起诱惑, 尝尝鲜) + Tomcat 5.0.28 + AXIS 1.4。
AXIS 1.4 包可以在 http://ws.apache.org/axis/找到。
假设所有的环境你已 经搭好,并且 AXIS 包也已经下好了。
OK, Here we go ̄ 解压 axis-bin-1_4.zip 这个包可以看到 webapps 目录, 双击进入把里面的 AXIS 文件夹拷 到 %TOMCAT_HOME%\webapps 目 录 下 , 之 后 拷 贝 activation.jar 、 mail.jar 、 tools.jar 到 %TOMCAT_HOME%\webapps\axis\WEB-INF\lib 目 录 下 。
启 动 tomcat , 访 问 http://localhost:8080/axis/happyaxis.jsp 如果访问成功,恭喜你!基本的配置你已经做完了。
PS: 此处的%TOMCAT_HOME%指的是 Tomcat 的安装目录, 至于那另外的三个 jar 包, J2EE 1.4 库里就能找的到。
现在来说一下最关键的 Webservice 的发布。
AXIS 提供了两种发布方式,一种是即 时发布(Instant Deployment) ,另外一种是定制发布(Custom Deployment) 。
即时发布提供 了一种非常简单的 webservice 的发布方式, 但是其中限制太多, 因此在实际的开发中定制发 布才是首选。
这里也将会以定制发布为重点来介绍。
1.即时发布 JWS (Java Web Service) Files - Instant 即时发布 Deployment 即时发布提供了一种非常简单发布方式, 发布者只要有 Java 源代码 (也就是.java 文件) , 然 后 把 其 后 缀 名 改 成 jws ( 也 就 是 java web service 的 缩 写 ) 拷 贝 到%TOMCAT_HOME%\webapps\axis 目录下即完成了所有的发布工作。
axis WebService - 开发指南
![axis WebService - 开发指南](https://img.taocdn.com/s3/m/cea9e537a32d7375a417808c.png)
Axis1.x一、搭建简单的axis web服务1、在官方网站下载axis的工程(这个等下就有用的)和源码、jar包等,下载地址是:/apache-mirror//ws/axis/1_4/2、解压下载的工程或源码(两个中任意一个都可以),解压axis-bin-1.4可以看到大致目录是这样的:docs是文档、lib是jar包、sample是示例、xmls是当前工程所需的xml、webapps是当前工程的webroot目录;我们打开webapps目录就可以看到一个axis的文件夹,这个文件夹里面有WEB-INF文件夹和一些页面,将axis复制到你的tomcat的webapps目录下。
然后启动tomcat服务,访问http://localhost:8080/axis/,看到下面的解码就说明部署成功了:以后我们将和这个工程不离不弃,它将在我们的axis1.x的webService中发挥很大的作用!3、创建我们自己的web工程,这里我新建的AxisWebService;创建好工程后,将刚才解压的axis-bin中的lib的jar包copy到当前工程的lib中;axis-ant.jaraxis.jarcommons-discovery-0.2.jarcommons-logging-1.0.4.jarjaxrpc.jarlog4j-1.2.8.jarsaaj.jarwsdl4j-1.5.1.jaractivation-1.1.jarmail-1.4.jar创建webService类文件,代码如下:4、复制HelloWorldService.java到我们刚才复制的axis文件夹下即可;也就是tomcat 下的webapps下的axis下即可;注意:还有重要的一般就是要将这个java文件中的包名去掉,并且将这个文件重命名为HelloWorldService.jws;如果带包名的话,请求后编译的class将会在包路径下,这样我们在全球当前jws的时候就会出现找不到class,详细的你可以到发布在tomcat下的工程看看WEB-INF目录下的jwsClass就一目了然了。
Axis2对于不同开发环境应用详解
![Axis2对于不同开发环境应用详解](https://img.taocdn.com/s3/m/d0d3774d2b160b4e767fcf88.png)
Apache Axis2 插件安装以及实现WebService接口一、Eclipse安装Axis2插件及应用1、环境准备:Eclipse – j2ee需要的Axis2压缩包文件解压后的文件名为axis2-1.4.1目录解压后的文件结构如图:2、配置EclipseEclipse自带了开发WebService的工具第一步:打开Eclipse-->点击菜单windows-->Preferences-->WebServices-->Axis2Preferences-->设置Axis2 runtime location为Axis2下载后并解压的核心包的位置:选择后Eclipse会自动检测包是否正确。
如果successfully提示表示设置正确第二步:在Eclipse创建一个WebProject时,点击Configuration的Modify会出现下图界面:勾选Axis2 Web Services按OK。
回到新建WebProject界面,完成项目创建。
创建成功后会发现在WEB-INF文件夹下会多出一个axis2-web的文件夹,这个是Axis2的项目文件夹。
现在启动服务器会抛出异常,这是因为Eclipse在自动加载生成该项目时有几个问题需要手动修复,下面分别列出:问题一:会抛出异常:ng.ClassNotFoundException:org.apache.axis2.transport.http.AxisAdminServlet是因为生动生成的web.xml文件中所指定的AxisAdminServlet包路径有错。
自动生成的源码如下:注意红色字体部分,我们可以去看一下所下载的Axis2的源包。
AxisAdminServlet类所在的包路径并不在下列这个路径中org.apache.axis2.transport.http,该类是属于包org.apache.axis2.webapp下。
Spring+Axis1.4开发WebService实例
![Spring+Axis1.4开发WebService实例](https://img.taocdn.com/s3/m/eab3e0a802d276a200292eac.png)
Spring+Axis1.4开发WebService实例本文需要两个eclipse project,一个是web工程,用于webservice服务端,一个是java project,用于客户端一个基本的axis web服务由以下四部分组成:Axs servlet,Axis部署描述文,远程借口,服务实现首先看服务端的代码实现(看看这里)创建POJO接口package ch16.SimpleAxis;public interface HelloWorld {public String getMessage();}创建POJO接口实现:package ch16.SimpleAxis;public class SimpleHelloWorld implements HelloWorld {public String getMessage() {return "hello world axis";}}创建远程接口:package ch16.SimpleAxis;import java.rmi.Remote;import java.rmi.RemoteException;public interface RemoteHelloWorld extends Remote {public String getMessage() throws RemoteException;}创建WEB服务我们的应用不需要为服务创建实例,因为这是axis的工作,所以,我们如果简单的实现RemoteHelloWorld,就不能对他进行DI操作我们可以使用简单的远程接口实现类,但是,这种方法有一种缺点--你不可以使用DI,一个更好的解决办法就是为你的POJO服务对象做一个简单的包装器,在spring加载ApplicationContext 时候可以使用你配置的DI。
Spring提ServletEndpoingSupport类可以让这一切变得简单,并且允许你访为web应用而加载的ApplicationContextpackage ch16.SimpleAxis;import java.rmi.RemoteException;import javax.xml.rpc.ServiceException;import org.springframework.remoting.jaxrpc.ServletEndpointSupport;//一个JAXRPC的包装器public class JaxRpcHelloWorld extends ServletEndpointSupport implementsRemoteHelloWorld {private HelloWorld helloWorld;protected void onInit() throws ServiceException {helloWorld=(HelloWorld)getApplicationContext().getBean("helloWorldService");}public String getMessage() throws RemoteException {return helloWorld.getMessage();}}这个类有两个重要的方法getMessage()和onInit()方法的实现。
(完整word版)e-cology工作流WebService接口使用说明
![(完整word版)e-cology工作流WebService接口使用说明](https://img.taocdn.com/s3/m/901a6669ec3a87c24128c406.png)
e—cology工作流接口使用白皮书SUBMITED BY WEA VER文档版本历史目录一、前言 (4)1。
1编写目的 (4)1。
2名词定义 (4)二、接口调用步骤 (5)2.1 Ecology系统流程接口部署 (5)2。
2表单字段 (6)2.3检查ecology web service是否已部署 (7)2.4接口方法概述 (8)2.5 流程相关对象说明 (14)2。
6 生成客户端 (24)三、示例程序 (28)3.1创建带附件的留言 (28)3。
2 使用客户端代理创建留言 (28)3。
3 使用客户端查询留言 (33)3.4 使用客户端实现流程转发 (34)3.5 使用客户端实现流程提交 (36)3。
6 使用客户端实现流程退回 (37)3.7 使用客户端获得待办列表 (38)3。
8 使用客户端获得已办列表 (40)3。
9 使用客户端获得办结列表 (41)3.10 使用客户端获得我的请求列表 (43)一、前言1。
1编写目的本文给有研发能力的客户或有系统集成需求的客户提供web service接口调用的参考例程。
本文的面向具有一定web service开发能力或了解web service技术的开发人员。
1。
2名词定义1、Axis:著名的开源web service引擎.2、外部系统:指调用或实现e-cology工作流输入输出接口,与e—cology系统进行数据交接的其他系统。
二、接口调用步骤2.1 Ecology系统流程接口部署1.更新lib目录下文件将spring.jar更新为spring—1。
2。
6。
jar将xfire-all—1.1.2.jar更新为xfire—all-1。
2。
6.jar添加xbean—spring-2。
8。
jar文件2.修改/WEB-INF/web.xml文件在相应处增加servlet部署(参考系统中已有很多servlet部署),加入如下描述〈servlet〉〈servlet-name〉XFireServlet</servlet—name>〈servlet-class〉org。
java开发webservice的几种方式
![java开发webservice的几种方式](https://img.taocdn.com/s3/m/f466c433dc36a32d7375a417866fb84ae45cc3ba.png)
java开发webservice的⼏种⽅式webservice的应⽤已经越来越⼴泛了,下⾯介绍⼏种在Java体系中开发webservice的⽅式,相当于做个记录。
1.Axis2⽅式Axis是apache下⼀个开源的webservice开发组件,出现的算是⽐较早了,也⽐较成熟。
这⾥主要介绍Axis+eclipse开发webservice,当然不⽤eclipse也可以开发和发布webservice,只是⽤eclipse会⽐较⽅便。
(1)下载eclipse的Java EE版本(2)下载axis2(3)下载eclipse的axis2插件Axis2_Codegen_WizardAxis2_Service_Archiver推荐使⽤1.3的版本(4)eclipse安装axis2插件1)在任意⽬录下新建⼀个Axis2⽂件夹,在该⽂件夹下新建eclipse⽬录,在eclipse⽬录中新建plugins⽬录和features⽬录,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;2)把下载的axis2插件解压,并把解压的⽂件放到新建的eclipse的plugins⽬录下;3)在%eclipse_home%的⽬录下新建links⽬录,并在links⽬录下新建axis2.link⽂件,内容为:path=D:\programSoftware\eclipse-SVN\Axis2; 4)重启eclipse,点击·file-new-other,如果看到Axis2 Wizards,则表明插件安装成功。
(5)安装axis2(6)使⽤eclipse新建web⼯程,创建⼀个普通java类,⾄少包含⼀个⽅法。
(7)发布webservice1)点击eclipse的File-New-other,打开Axis2 Wizards,选择Axis2 Service Archiver,然后Next;2)选择Class File Location,也就是类⽂件存放路径,注意:只选到classes⽬录,不要包括包⽂件夹,然后Next;3)选择Skip WSDL,然后Next4)⼀路Next到Select the Service XML file to be included in the Service archive,勾选Generate theservice xml automatically;5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击Finish,这时webservice就发布成功了;6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了⼀个.aar的⽂件;注意:以上的⽅式是发布到axis2.war包中,你也可以把⽣成.aar⽂件copy到你的实际应⽤中,同时,你也可以使⽤eclipse的create webservice 功能发布你的webservice,选择axis2⽣成你的webservice,这样webservice就会部署到你的应⽤中了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、准备工作。
1、首先下载eclipse用于开发WebService的相关插件。
该插件在eclipse站点有下。
我下的是包含该插件的全套eclipse的SDK:wtp-all-in-one-sdk-R-1.5.2-200610261841-win32.zip
共210兆多。
A、解压该文件;
B、安装自己插件,把插件用LINK目录建立关联。
(如:TOMCAT等)
C、配置好自己的eclipse,这个不用多说了。
2、下载TOMCAT。
我用的是TOMCAT5.0.16。
3、下载最新的AXIS。
这非常重要。
我以前就是因为使用了旧版的AXIS (AXIS1。
1),最后导致生成的WEBSERVICE调用程序编译失败。
现在我使用AXIS1。
4
A、解压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 HelloBean {
public String sayHello(String name){
return"hello:"+name;
}
}
4、发布该类为WEB服务。
右击HelloBean.java->web services->create web services
将左边筐拉到最上边(Test service)。
(以后可以立即测试该web services)
其他不用多说。
往下。
发布到TOMCAT中。
按NEXT完成发布。
按FINISH,系统立即启动WEB SERVICE测试。
下面为自动启动的测试页面。
选择方法sayHi。
输入ricky。
回车。
系统返回WEB SERVICE的应答结果。
Hi,ricky
测试结果证明WEB SERVICE发布成功,且可以被调用。
三、发布该WEB SERVCIE。
编辑%tomcathome%\conf的server.xml,
增加一个WEB站点。
<Context path="/webtest" reloadable="true"
docBase="C:\eclipse\workspace\项目名称\WebContent" /> 四、关闭eclipse中的TOMCAT服务器,启动栏目中的小猫。
在浏览器中输入http://localhost:8080/webtest/wsdl/test2.wsdl。
可见WEB SERVICE 已经成功发布。
可以随时准备调用了。
后面我将会发布如何用eclipse开发调用WEB SERVICE的客户端程序的程序。
接上文。
可以写一个WEB客户端程序来测试写好的WEB服务。
1、首先NEW 一个 PROJECT。
WEB-》动态WEB PROJECT。
2、在进行后面操作前,需要编辑用于测试的TOMCAT服务器的server.xml文件。
其端口不能和本机上的端口冲突。
因为前面我已经启动了发布WEB服务的TOMCAT,所以我把准备用于该次测试的TOMCAT服务器上的server.xml的相关端口进行了修改。
(如果不修改将不能启动另一个用于测试的TOMCAT)。
3、在项目中建立一个WEB SERVICE的测试CLIENT。
4、钩上TEST WEB SERVICE。
5、输入上文发布的WEB SERVICE URL。
一路默认。
测试方法只选择sayHi,勾上RUN TEST ON SERVER。
按FINISH稍后,大家可以看到ECLIPSE中的测试TOMCAT已经启动起来了。
选择方法sayHi,输入ricky,回车。
可以看到其返回的结果果然是。
Hi,ricky
测试成功。
*要注意一点的是,我用的是JDK1。
5,以前用JDK1。
4,生成的客户端调用类不能通过编译。
RESULT不能显示。
*还有要用最新的AXIS,这非常重要。
我以前就是因为使用了旧版的AXIS (AXIS1。
1),最后导致生成的WEBSERVICE客户端调用程序编译失败。
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(e.LITERAL);
不能编译通过,使用最新下载的AXIS1。
4后,错误消失。
测试成功。