package mypackage.server; import java.util.Date; //WebService服务端类 public class HelloDateServer { /** * 服务方法 * @param yourName * @return */ public String helloDate(String yourName){ String rtStr = "Hello ,"+yourName+" ,it's: " + new Date(); return rtStr; } //Add method here...... }
WEB-INF/web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- =============== Axis Webservice =============--> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet> <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> <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> </web-app>
变量名:AXIS_LIB 变量值:C:\axis-1_4\lib[color=red](我是直接将下载下来的包解压到C盘)[/color] 将以下变量值加入CLASSPATH %AXIS_LIB%\axis.jar; %AXIS_LIB%\axis-ant.jar; %AXIS_LIB%\commons-discovery-0.2.jar; %AXIS_LIB%\commons-logging-1.0.4.jar; %AXIS_LIB%\jaxrpc.jar; %AXIS_LIB%\log4j-1.2.8.jar; %AXIS_LIB%\saaj.jar; %AXIS_LIB%\wsdl4j-1.5.1.jar;
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- 这里的stubs为wsdd描述符中的ServiceNamespace --> <service name="stubs" provider="java:RPC"> <!-- 这里的ClassName就是我的服务类了, 这个服务主要功能就是传递一个自定义的对象 --> <parameter name="className" alue="mypackage.server.HelloDateServer " /> <!-- 这里描术的意思是,此服务类中的方法全部享出来. value值为*号 如果你只想让你的客户端只能调用其中一个方法时,value值改为方法名就可以了. --> <parameter name="allowedMethods" value="*" /> </service> </deployment>
- Unable to find required classes (javax.activation.DataHandler and javax.mail.i nternet.MimeMultipart). Attachment support is disabled. Processing file deploy.wsdd <Admin>Done processing</Admin>
java org.apache.axis.wsdl.WSDL2Java –o ./ -p mypackage.client stubs.wsdl解释一下此命令:
java org.apache.axis.wsdl.WSDL2Java –o %Output_Path% -p %Package% stubs.wsdl
src/mypackage/StubsClient.java package mypackage.client; import java.net.URL; public class StubsClient { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // 定义的service和stub HelloDateServerService service = null; HelloDateServer stub = null; try { System.out.println("connect......"); String StrPortAddress = "http://localhost:8080/Test/services/stubs"; URL portAddress = new URL(StrPortAddress); // 得到客户端服务 service = new HelloDateServerServiceLocator(); // 得到客户端stub stub = service.getstubs(portAddress); // 测试服务方法 String resultStr = stub.helloDate("Google"); System.out.println(resultStr); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("End."); } } }