java axis webservice 开发实例[转]

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”。

相关推荐