大家好、这两天在学习Web Service SOAP实现,还是从网上找资料开始、 
http://di201yao.iteye.com/blog/310292 这是我在网上找的一篇配置文章、
一些列的服务已经配置好了、也能访问http://localhost:8080/soap/admin/服务端的代码:
public class HelloWorldService {
public String getMessage(){
System.out.println(">>>>>>>>>>>>>>>>>into1");
return "Hello World!!!";
}

public String getMessage(String str1, String str2) { 
return "Hello World! " + str1 + "&" + str2; 
} }客户端代码:
public class HelloWorldClient {
public static void main(String[] args) throws Exception {
String endPoint = "http://localhost:8080/soap/servlet/rpcrouter";
Call call = new Call(); 
call.setTargetObjectURI("urn:HelloWorldService"); 
call.setMethodName("getMessage"); 
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); 

Vector params = new Vector();
Parameter p1 = new Parameter("name", String.class, "测试1", null); 
Parameter p2 = new Parameter("name2", String.class, "测试2", null); 
params.addElement(p1);
params.addElement(p2); 
call.setParams(params);

URL url = new URL(endPoint); 
Response resp = call.invoke(url, "");
if(resp.generatedFault()){
Fault fault = resp.getFault();
System.out.println("The Following Error Occured:");
System.out.println("Fault Code=" + fault.getFaultCode());
System.out.println("Fault String=" + fault.getFaultString());
} else {
Parameter result = resp.getReturnValue();
System.out.println(result.getValue());
}

}
}现在的问题是 我执行客户端代码的时候 输出如下信息:
The Following Error Occured:
Fault Code=SOAP-ENV:Server
Fault String=service 'urn:HelloWorldService' unknown应该就是没找到HelloWorldService 这个服务端的代码了、我想请问的是HelloWorldService这个应该放在什么位置呢?谢谢!我的QQ是:251637313  希望了解这块的帮忙指点一下

解决方案 »

  1.   

    你应该用另外一个工程来发布你的wsdl吧。
      

  2.   

    支持main函数的时候 tomcat控制台打印信息如下:
    SOAP Service Manager: Unable to read 'DeployedServices.ds': assuming fresh start
      

  3.   

    String endPoint = "http://localhost:8080/soap/servlet/rpcrouter";这个需要先发布,要不,没法访问的。
      

  4.   

    嗯 这个已经发布了、发布在tomcat上面的、我的问题是服务端代码放在哪里?
    网上那篇文章介绍说把HelloWorldService打成jar文件放在tomcat的lib目录下面 
    好像不起作用呢?
      

  5.   

    被你搞晕了,服务端代码不就应该是String endPoint = "http://localhost:8080/soap/servlet/rpcrouter"映射的?