读书人

java WebService 中的。Client报错了

发布时间: 2013-07-20 11:07:48 作者: rapoo

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());

读书人网 >Eclipse开发

热点推荐