首先将axis的jar包添加到classpath中
1.根据接口生成wsdl,注意要在工程的classes目录下
C:\ws\classes> java org.apache.axis.wsdl.Java2WSDL -o mb.wsdl -l "http://localhost:8080/axis/services/MobileBoss" -n "urn:MobileBoss" -p"com.yy.ws" "urn:MobileBoss" webservice.example2.server.MobileBoss
参数说明: -o 输出wsdl文件名称
-l 访问的url (你的webservice地址,最后的路径名MobileBoss会与后面生成的文件有关)
-n 命名空间
-p 包名 命名空间的名字。(urn:是命名空间的缩写,必须有!)
包名其实没什么关系,如果你不用这个wsdl文件的话。
webservice.example2.MobileBoss 是接口的全路径。包名+接口名。
2.根据wsdl生成java文件和deploy.wsdd
C:\ws\classes>java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -Nurn:MobileBoss webservice.example2.auto mb.wsdl
参数说明: -o 输出文件所在目录( .-代表当前目录 )
-s生成server端绑定代码
-d发布范围 (注意此参数)
-S是否产生发布和撤销webservice的deploy.wsdd和undeploy.wsdd文件。ture代表生成发布文件。
-Nurn:命名空间 包名
webservice.example2.auto 为文件输出目录
mb.wsdl - wsdl文件名。
3.生成的MobileBossSoapBindingImpl文件中加入业务逻辑
4.在web.xml中加入
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<display-name>Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<display-name>SOAPMonitorService</display-name>
<servlet-name>SOAPMonitorService</servlet-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</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>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
5.发布工程,启动web服务器
6.通过deploy.wsdd生成server-config.wsdd,以达到发布webservice的目的
D:\apache-tomcat-5.5.25\webapps\axis\WEB-INF\classes\webservice\example2\auto>java org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
-l后的axis为工程名称
7.测试代码
ClientRequest req = new ClientRequest();
req.setAmount(1000);
req.setOpType("charge");
req.setPhoneNumber("13912345678");
MobileBoss[b]Service[/b] sl = new MobileBoss[b]ServiceLocator[/b]();
URL url = new URL("http://localhost:8080/axis/services/MobileBoss");
MobileBoss mb = sl.[b]get[/b]MobileBoss(url);
// MobileBoss mb = sl.getMobileBoss();//default port
ServerResponse resp = mb.charge(req);
System.out.println("client result:"+resp.getResultCode()+"\nclient message:"+resp.getMessage());
1.根据接口生成wsdl,注意要在工程的classes目录下
C:\ws\classes> java org.apache.axis.wsdl.Java2WSDL -o mb.wsdl -l "http://localhost:8080/axis/services/MobileBoss" -n "urn:MobileBoss" -p"com.yy.ws" "urn:MobileBoss" webservice.example2.server.MobileBoss
参数说明: -o 输出wsdl文件名称
-l 访问的url (你的webservice地址,最后的路径名MobileBoss会与后面生成的文件有关)
-n 命名空间
-p 包名 命名空间的名字。(urn:是命名空间的缩写,必须有!)
包名其实没什么关系,如果你不用这个wsdl文件的话。
webservice.example2.MobileBoss 是接口的全路径。包名+接口名。
2.根据wsdl生成java文件和deploy.wsdd
C:\ws\classes>java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -Nurn:MobileBoss webservice.example2.auto mb.wsdl
参数说明: -o 输出文件所在目录( .-代表当前目录 )
-s生成server端绑定代码
-d发布范围 (注意此参数)
-S是否产生发布和撤销webservice的deploy.wsdd和undeploy.wsdd文件。ture代表生成发布文件。
-Nurn:命名空间 包名
webservice.example2.auto 为文件输出目录
mb.wsdl - wsdl文件名。
3.生成的MobileBossSoapBindingImpl文件中加入业务逻辑
4.在web.xml中加入
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<display-name>Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<display-name>SOAPMonitorService</display-name>
<servlet-name>SOAPMonitorService</servlet-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</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>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
5.发布工程,启动web服务器
6.通过deploy.wsdd生成server-config.wsdd,以达到发布webservice的目的
D:\apache-tomcat-5.5.25\webapps\axis\WEB-INF\classes\webservice\example2\auto>java org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
-l后的axis为工程名称
7.测试代码
ClientRequest req = new ClientRequest();
req.setAmount(1000);
req.setOpType("charge");
req.setPhoneNumber("13912345678");
MobileBoss[b]Service[/b] sl = new MobileBoss[b]ServiceLocator[/b]();
URL url = new URL("http://localhost:8080/axis/services/MobileBoss");
MobileBoss mb = sl.[b]get[/b]MobileBoss(url);
// MobileBoss mb = sl.getMobileBoss();//default port
ServerResponse resp = mb.charge(req);
System.out.println("client result:"+resp.getResultCode()+"\nclient message:"+resp.getMessage());