把服务写到Axis下的server-config.wsdd中,例如:
<service name="SayHello2" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="samples.userguide.example2.testHelloWorld"/>
</service>
然后写一个客户端,关键代码:
String endpoint = "http://localhost:" +"8080"+ "/projectname/ServerClassName.jws";//指明服务所在位置 Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的!
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
call.setOperationName( "调用的方法名" );//注意方法名与HelloWorld.java中一样!! String res = (String) call.invoke( new Object[] {"参数"} );//返回String,没有传入参数 System.out.println( res );
<service name="SayHello2" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="samples.userguide.example2.testHelloWorld"/>
</service>
然后写一个客户端,关键代码:
String endpoint = "http://localhost:" +"8080"+ "/projectname/ServerClassName.jws";//指明服务所在位置 Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的!
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
call.setOperationName( "调用的方法名" );//注意方法名与HelloWorld.java中一样!! String res = (String) call.invoke( new Object[] {"参数"} );//返回String,没有传入参数 System.out.println( res );
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货