首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

java WebService 中的。Client报错了,求大神拯救

2013-07-20 
java WebService 中的。。Client报错了,,求大神解救接口:package testimport javax.jws.WebService@WebSer

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

热点排行