A.如何获得 WSDL 文件
-
在浏览器中,浏览至附加了 ?WSDL 的 Web Service 的 URL。例如:http://myServer:7001/MyProject/MyWebService.jws?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这个字符串可以根据项目名称的不同而修改,其他的都是必然写法。
在%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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。