用axis实现webservice的基础知识
来源:互联网 发布:羊毛大衣 知乎 编辑:程序博客网 时间:2024/04/30 02:35
A.如何获得 WSDL 文件
- 在“应用程序”窗格中,浏览至要为其生成 WSDL 文件的 JWS 文件。
- 在“应用程序”窗格中用鼠标右键单击 JWS 文件,然后选择“生成 WSDL 文件”。
- 如果 JWS 文件的名称是 MyService.jws,则在同一目录中创建名为 MyServiceContract.wsdl 的文件。默认情况下,WSDL 文件链接到从中生成它的 JWS 文件,这意味着当更改 JWS 文件时会重新生成 WSDL 文件。
Web Service 的 WSDL 文件可用于任何可到达 Web Service 的 URL 的潜在客户端。从 WebLogic Server 获取 Web Service 的 WSDL 文件:
- 在浏览器中,浏览至附加了 ?WSDL 的 Web Service 的 URL。例如:http://myServer:7001/MyProject/MyWebService.jws?WSDL
- 使用浏览器的“文件”-->“另存为”功能将 WSDL 文件保存到本地机器。请注意,某些浏览器将在已保存文件的顶部和底部包含 HTML 标记。必须使用文本编辑器删除这些标记以生成有效的 WSDL 文件。
B.用deploy.wsdd生成server-config.WSDD文件
在%TOMCAT_HOME%/webapps/axis/WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件 deploy.wsdd <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloWorld" provider="java:RPC"> <parameter name="className" value="HelloWorld"/> <parameter name="allowedMethods" value="sayHello"/> </service> </deployment> 在%TOMCAT_HOME%/webapps/axis/WEB-INF目录下执行下列语句 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd 要注意的是 -Djava.ext.dirs=lib这个参数,这个参数可以使你编译过程中动态调用axis.jar包。而不需要事先在系统变量里配置axis.jar包的路径。另外,-lhttp://之后只有axis这个字符串可以根据项目名称的不同而修改,其他的都是必然写法。
C.用wsdl文件生成客户端的java文件
在%TOMCAT_HOME%/webapps/axis/WEB-INF目录下执行下列语句 java -Djava.ext.dirs=./web/WEB-INF/lib org.apache.axis.wsdl.WSDL2Java http://localhost:5888/szcg/services/businessService?wsdl -t
总结,server-config.wsdd文件得靠自己写(暂时这么认为,不知道有没有工具可以根据服务端java类自动产生,自己也可以写一个)下面为客户端代码解释:
String endpoint = "http://172.31.0.42:8888/test/services/testService?wsdl"; Service service = new Service(); Call call call = (Call) service.createCall();
QName qn = new QName("process"); QName qx = new QName("urn:BeanService", "CommonResult"); call.setOperationName(qn);//设置你要调用的远程方法名 call.registerTypeMapping(CommonResult.class, qx, new BeanSerializerFactory(CommonResult.class, qx), new BeanDeserializerFactory(CommonResult.class, qx));//序列化和反序列化传回的参数,如无自定义的类可不设置这个参数
call.setTargetEndpointAddress(new java.net.URL(endpoint));//设置要调用远程方法的类,类可在server-config.wsdd配置文件里找到, call.setUseSOAPAction(true); String params = "<?xml version='1.0' encoding='UTF-8'?><request><function name='feedback'/><params><xmbh>a</xmbh><qsdw>b</qsdw><sgyj>c</sgyj><txsj>2008-07-03 17:35:00</txsj><txr>d</txr></params></request>";//用xml写成传入参数,这样可以简化参数个数,参数可任意增加和减少
CommonResult obj1=(CommonResult) call.invoke(new Object[] { params });
server-config.wsdd配置文件是axis.jar文件中会自动调用.
测试axis服务器是否设置好可以在浏览器里输入http://172.31.0.42:8888/test/services/testService?wsdl,无错误则表示wsdd配置文件无误.
如在项目中加入webservic刚要在web.xml文件里加入
<servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> <load-on-startup>5</load-on-startup> </servlet><servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
- 用axis实现webservice的基础知识
- axis webservice 的实现原理
- Axis实现的WebService创建傻瓜教程
- servlet,jsp,axis webservice 的实现原理
- axis+tomcat实现简单的webservice
- 用axis实现webService--服务端+客户端
- Tomcat+Axis实现webservice
- axis实现webservice
- axis实现webservice
- axis实现webservice
- axis实现webservice服务
- axis实现webservice
- 搭建Axis的WebService
- 用AXIS开发WEBSERVICE
- 用Axis开发Webservice
- 用Axis开发WebService
- 用axis调用webservice
- java实现webservice axis实例
- 介绍一个不错的免费国外php空间
- EJB概述
- 夸平台的秘密:字符串
- W77E58单片在GPS解码程序
- 在struts的ActionForward中添加参数
- 用axis实现webservice的基础知识
- 配置 fedora 9 的 vsftpd 服务
- Sans Serif字体与Serif字体的区别
- 经典正则表达式收藏
- 解决Windows XP SP2某些网站验证码无法显示的问题
- java指定打印机名称进行打印
- 反射在Java Swing编程中的应用
- vc下ado存取access
- setsockopt()改善程序的健壮性