Junzizhiai 2011-11-11
在web项目中增加webservice。
步骤:
1,下载jar包,下载地址:http://ws.Apache.org/axis/
2,创建一个web项目,我的名为:webservice
3,创建server-config.wsdd文件,和web.xml同级。
<?xmlversion="1.0"encoding="UTF-8"?>
<deploymentxmlns="http://xml.apache.org/axis/wsdd/"xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parametername="sendMultiRefs"value="true"/>
<parametername="disablePrettyXML"value="true"/>
<parametername="dotNetSoapEncFix"value="true"/>
<parametername="enableNamespacePrefixOptimization"value="false"/>
<parametername="sendXMLDeclaration"value="true"/>
<parametername="sendXsiTypes"value="true"/>
<parametername="attachments.implementation"value="org.apache.axis.attachments.AttachmentsImpl"/>
</globalConfiguration>
<handlertype="java:org.apache.axis.handlers.http.URLMapper"name="URLMapper"/>
<servicename="Login.jws"provider="java:RPC">
<parametername="className"value="com.gc.Login"/>//你要改的就是这.这写上要调用的类.就可以
<parametername="scope"value="request"/>
<parametername="allowedMethods"value="*"/>//这*代表所有的方法
<messageReceiverclass="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</service>
<transportname="http">
<requestFlow>
<handlertype="URLMapper"/>
</requestFlow>
</transport>
</deployment>
4,在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>
5,创建一个类com.gc.Login
publicclassLogin{
publicStringAdd(inti,Strings){
return"gc";
}
}
在IE浏览器中输入:http://localhost:8080/webservice/services
如果看到Login的Add方法就说明成功了。
6,创建一个客户端项目clientwebservice.
7,创建一个测试类Test:
publicclassTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Stringurl="http://localhost:8080/webservice/services/Login.jws";//
Serviceservice=newService();
Callcall;
try{
call=(Call)service.createCall();
call.setTargetEndpointAddress(newjava.net.URL(url));
//如果远程方法需要用户名和密码验证时
//call.getMessageContext().setUsername("username");
//call.getMessageContext().setPassword("password");
call.setOperationName("Add");//这是要调用的方法
Stringres=(String)call.invoke(newObject[]{17,"sssss"});
System.out.println(res);
}catch(MalformedURLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(RemoteExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(ServiceExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
运行后打印出“gc”。