场景:java WebService 中的。Client报错了,求大神拯救
java WebService 中的。。Client报错了,,求大神解救
接口:
package test;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
public String sayHello(String name);
}
实现类:
package test;
import javax.jws.WebService;
@WebService
public class HelloWorldImpl implements HelloWorld {
public String sayHello(String name) {
System.out.println("Say Hello is called");
return "--hello--"+name;
}
}
调用:
package test;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class MainServer {
/**
* @param args
*/
public static void main(String[] args) {
JaxWsServerFactoryBean factory =new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWorldImpl.class);
factory.setAddress("http://localhost:8080/HelloWorld");
Server server =factory.create();
server.start();
}
最后这个Client ( 报错了。。。。):
package test;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class HelloWorldClient {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
JaxWsServerFactoryBean factory =new JaxWsServerFactoryBean();
factory.setAddress("http://localhost:8080/HelloWorld");
factory.setServiceClass(HelloWorld.class);
HelloWorld helloworld =(HelloWorld)factory.create();
System.out.println(helloworld.sayHello("AA"));
}
}
报的错是:
Exception in thread "main" java.lang.ClassCastException: org.apache.cxf.endpoint.ServerImpl cannot be cast to test.HelloWorld
at test.HelloWorldClient.main(HelloWorldClient.java:16)
WebService
异常
服务器
java
分享到:
------解决方案--------------------
HelloWorld helloworld =(HelloWorld)factory.create();红色返回的Server类型的。
------解决方案--------------------
你的那个我没用过//这个是用cxf 客户端访问cxf部署的webservice服务
//千万记住,访问cxf的webservice必须加上namespace ,否则通不过
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/facelook/services/facelookWebService?wsdl");
//url为调用webService的wsdl地址
QName name=new QName("http://server.webservice.facelook.com/","getAlbumList");
//namespace是命名空间,methodName是方法名
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ " "
+ " "
+ " 家"
+ ""
+ ""
+ ""
+ " "
+ " ";
//paramvalue为参数值
Object[] objects=client.invoke(name,xmlStr);
//调用web Service//输出调用结果
System.out.println(objects[0].toString());