Axis入门配置

在网上看到一篇文章,感觉介绍的很详细,所以转载过来以便以后学习

 

前提:已有一个web项目,名为testAxis ,路径:E:\eclipseWork\testAxis

1、下载axis包

http://www.apache.org/dyn/closer.cgi/ws/axis/1_4

下载 axis-bin-1_4.zip

解压到 E:\axis-1_4

2、配置axis

将 E:\axis-1_4\lib 里面的文件拷到 E:\eclipseWork\testAxis\web\WEB-INF\lib 下

编辑 E:\eclipseWork\testAxis\web\WEB-INF\web.xml

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

前加入:

<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>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <mime-mapping> <extension>wsdl</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>xsd</extension> <mime-type>text/xml</mime-type> </mime-mapping>

编辑tomcat/conf/server.xml

 <Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

后加入:

<Context docBase="E:\eclipseWork\testAxis\web" path="/testAxis" reloadable="true" />

启动tomcat 访问: http://localhost:8080/testAxis/services

可以看到:

And now... Some Services

 3、编写webservice服务端

在web项目下新建一个类

package com.neo.test; public class HelloWorld { public String sayHello() { return "hello"; } }

4、注册服务

在 E:\eclipseWork\testAxis\web\WEB-INF 下新建文本文件 deploy.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="SayHello" provider="java:RPC"> <parameter name="className" value="com.neo.test.HelloWorld"/> <parameter name="allowedMethods" value="*"/> </service> </deployment>

启动刚刚配置好的项目,并确保访问http://localhost:8080/testAxis/services 页面显示正常

打开cmd

cd E:\eclipseWork\testAxis\web\WEB-INF


E:\eclipseWork\testAxis\web\WEB-INF>java -Djava.ext.dirs=E:\eclipseWork\testAxis\web\WEB-INF\lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/testAxis/servlet/AxisServlet deploy.wsdd

成功的话会显示:

Processing file deploy.wsdd
<Admin>Done processing</Admin>

并在 E:\eclipseWork\testAxis\web\WEB-INF 下面产生 server-config.wsdd 文件

重启tomcat,并访问 http://localhost:8080/testAxis/services  会发现多出来一个service

And now... Some Services

就说明你的配置成功了

5、测试webservice

访问 http://localhost:8082/testAxis/services/SayHello?wsdl

<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://localhost:8082/testAxis/services/SayHello" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8082/testAxis/services/SayHello" xmlns:intf="http://localhost:8082/testAxis/services/SayHello" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> <wsdl:message name="sayHelloRequest"> </wsdl:message> <wsdl:message name="sayHelloResponse"> <wsdl:part name="sayHelloReturn" type="xsd:string"/> </wsdl:message> <wsdl:portType name="HelloWorld"> <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="SayHelloSoapBinding" type="impl:HelloWorld"> <wsdlsoap:binding style="rpc" mce_style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHello"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="sayHelloRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://test.neo.com" use="encoded"/> </wsdl:input> <wsdl:output name="sayHelloResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8082/testAxis/services/SayHello" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloWorldService"> <wsdl:port binding="impl:SayHelloSoapBinding" name="SayHello"> <wsdlsoap:address location="http://localhost:8082/testAxis/services/SayHello"/> </wsdl:port> </wsdl:service> </wsdl:definitions>

打开cmd

cd E:\eclipseWork\testAxis

E:\eclipseWork\testAxis>java -Djava.ext.dirs=E:\eclipseWork\testAxis\web\WEB-INF
\lib org.apache.axis.wsdl.WSDL2Java -oE:\eclipseWork\testAxis\src -pcom.neo.clie
nt http://localhost:8082/testAxis/services/SayHello?wsdl

执行后在src下产生 E:\eclipseWork\testAxis\src\com\neo\client 文件夹里面有四个java文件:

HelloWorld.java

HelloWorldService.java

HelloWorldServiceLocator.java

SayHelloSoapBindingStub.java

这是根据服务器端提供的wsdl生成的客户端需要的基础文件

在com.neo.client下新建一个类

package com.neo.client; import java.rmi.RemoteException; import javax.xml.rpc.ServiceException; public class HelloWorldClient { public void testSayHello() throws ServiceException, RemoteException{ HelloWorldService service = new HelloWorldServiceLocator(); HelloWorld client = service.getSayHello(); System.out.println(client.sayHello()); } public static void main(String[] args) { HelloWorldClient client = new HelloWorldClient(); try { client.testSayHello(); } catch (RemoteException e) { e.printStackTrace(); } catch (ServiceException e) { e.printStackTrace(); } } }

直接运行,如果打印出 hello 就说明客户端调用成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值