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"?>"
+ " <facelook>"
+ " <condition>"
+ " <name>家</name>"
+ "<description></description>"
+ "<pageno></pageno>"
+ "<pagesize></pagesize>"
+ " </condition>"
+ " </facelook>";
//paramvalue为参数值
Object[] objects=client.invoke(name,xmlStr);
//调用web Service//输出调用结果
System.out.println(objects[0].toString());