今天研究了下webservice 终于OK了
发布时间:2020-12-17 00:06:37 所属栏目:安全 来源:网络整理
导读:今天研究了下webservice 终于OK了,所以把它写到自己的博客来,因为网上说的都很复杂 ????而在这里,我会很简单的说明,一看就懂 ????首先在进行webservice??一定要下载包 ????到? http://ws.Apache.org/axis/网站下载Axis安装包. ??????在本文章中,我已经把要用
今天研究了下webservice 终于OK了,所以把它写到自己的博客来,因为网上说的都很复杂
????而在这里,我会很简单的说明,一看就懂 ????首先在进行webservice??一定要下载包 ????到? http://ws.Apache.org/axis/网站下载Axis安装包. ??????在本文章中,我已经把要用的包上传了,大家可以直接在这下就行了 ??然后就写wsdd 文件,也是最重要的. 首先我在网上看到的例子是这样的,大家可以参考下 先写deploy.wsdd <deployment xmlns=" http://xml.apache.org/axis/wsdd/" xmlns:java="" target="_blank"> 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> 在DOS下转换目录到%TOMCAT_HOME%webappsaxisWEB-INF,命令: java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到 其实说了这多,就是为了得到一个server-config.wsdd 而我就把一个成功的server-config.wsdd 拿来改 .最后发现可以功能.如果大家为了快,也可以这样做 以下是server-config.wsdd??的代码 这个文件,是放到 WEB-INF 目录下 和web.xml一起 <?xml version="1.0" encoding="UTF-8"?> <deployment xmlns=" http://xml.apache.org/axis/wsdd/" xmlns:java=" http://xml.apache.org/axis/wsdd/providers/java">?? <globalConfiguration> ??<parameter name="sendMultiRefs" value="true"/> ??<parameter name="disablePrettyXML" value="true"/> ??<parameter name="dotNetSoapEncFix" value="true"/> ??<parameter name="enableNamespacePrefixOptimization" value="false"/> ??<parameter name="sendXMLDeclaration" value="true"/> ??<parameter name="sendXsiTypes" value="true"/> ??<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> </globalConfiguration> ??<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>?? ??<service name="Login.jws" provider="java:RPC">??? ???? <parameter name="className" value="com.liuzm.Login"/>// 你要改的就是这.这写上要调用的类.就可以 ???? <parameter name="scope" value="request"/> ???? <parameter name="allowedMethods" value="*"/> // 这*代表所有的方法? ???? <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> ??</service>??? ??<transport name="http">??? ???? <requestFlow>??? ????????<handler type="URLMapper"/>??? ???? </requestFlow>??? ??</transport>??? </deployment> 类的代码com.liuzm.Login: public class Login { ????public String Add(){ ????????return "liuzm"; ????} } 在这我只写了一个方法 就这样 完成了 然后在web.xml 加上 <servlet> ????????<servlet-name>AxisServlet</servlet-name> ????????<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> ????</servlet> ????<servlet-mapping> ????????<servlet-name>AxisServlet</servlet-name> ????????<url-pattern>/services/*</url-pattern> ????</servlet-mapping> 这样差不多一个webservice 完成了 然后在IE上测试下 http://localhost:8080/mywebservices/services? 如果在IE 上看到 login??Add 方法 就说明成功了 也可以写个测试类调用服务器 ???? String url = " http://localhost:8080/mywebservices/services/Login.jws";//????????????Service service = new Service(); ????????????Call call; ????????????try { ????????????????call = (Call) service.createCall(); ????????????????call.setTargetEndpointAddress(new java.net.URL(url) ); ????????????????call.setOperationName("Add" );// 这是要调用的方法 ???????????????? String res = (String) call.invoke( new Object[] {} ); ????????????????System.out.println(res); ????????????} catch (ServiceException e) { ????????????????// TODO Auto-generated catch block ????????????????e.printStackTrace(); ????????????} ???????? ????} 输出结果 liuzm 也就是Add 的方法.大家可以参考下 备注一下: 如果net与你交互,把http://localhost:8080/mywebservices/services/Login.jws?wsdl?这个地址给它 他那边会自动解析的,你也可以直接输入: http://localhost:8080/mywebservices/services/Login.jws?wsdl 测试下,如果成功就会显示xml格式的文件 如果完成了这一步,那么祝贺你成功了 Axis安装包 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |