当前位置:编程学习 > JAVA >>

cxf错误

最近刚刚接触cxf  第一个小例子就卡住了 麻烦大家给看一下
接口
package test;

import javax.jws.WebService;

@WebService
public inte易做图ce HelloWorld {
public String sayHello();
}
实现类:
package test;

import javax.jws.WebService;

@WebService
public class HelloWorldImpl implements HelloWorld {

public String sayHello() {
System.out.println("say hello is called");
return "Hello";
}

}
服务端:
package test;

import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class MainServer {

public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setAddress("http://localhost:8088/HelloWorld");
factory.setServiceClass(HelloWorldImpl.class);

Server server = factory.create();
server.start();
}

}
客户端:
package test;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class HelloWorldClient {

public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress("http://localhost:8088/HelloWorld");
factory.setServiceClass(HelloWorld.class);
HelloWorld helloWorld = (HelloWorld) factory.create();
System.out.println("客户端执行的代码");
    System.out.println(helloWorld.sayHello());
   
}

}
然后分别运行就出错误了  
信息: Creating Service {http://test/}HelloWorldService from class test.HelloWorld
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Fault occurred while processing.
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)
at $Proxy16.sayHello(Unknown Source)
at test.HelloWorldClient.main(HelloWorldClient.java:16)
Caused by: org.apache.cxf.binding.soap.SoapFault: Fault occurred while processing.
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:619)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2054)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1939)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1865)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:599)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:449)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:231)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:117)
... 2 more

麻烦大家给卡一下 在线等 --------------------编程问答-------------------- 谁能帮着看一下啊  小弟不胜感激 --------------------编程问答-------------------- 楼主:我最近也在研究cxf
这是一些我找的资料你可以去看下。
你的这种写法我还没写过。
目前我写的都是操作数据库的。
cxf:查询网站
http://cxf.apache.org/javadoc/latest/org/apache/cxf/jaxrs/impl/package-tree.html
http://www.ibm.com/developerworks/cn/webservices/ws-pojo-springcxf/
http://cxf.apache.org/
http://download.csdn.net/source/832420

好像是说服务器端的hellword找不到? --------------------编程问答-------------------- 给你看下我服务端代码
@GET
@Path("/getuser/{id}")
public VisUsers getUser(@PathParam("id") String id) {
return userDao.getUserByUid(id);
}
这里@GET是指用get方法传参
@Path是说我这个方法的访问路劲。为getuser
{id}是参数

在客户端
GetMethod getMethod = new GetMethod("http://localhost:8081/services/userservices/getuser/1");
这里services是cxf的默认路劲,在web.xml中有配置。userservices是类的访问路劲,getuser是方法。
1是参数。

突然发现楼主的services好像没掉了。
你看看你的web。xml中的配置?

如果没有这段话的话加一下。然后访问路劲改一下
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>


好像应该是http://localhost:8088/HelloWorld/services
http://ip地址:端口号/工程名/services/类访问名/方法访问名


--------------------编程问答-------------------- 楼主加个好友,一起研究cxf!
418920109 --------------------编程问答-------------------- 我这是从网上看到的一个视频教程里面的   这一天就做了这个东西还没调成功  郁闷啊  
你有什么好的资料么? --------------------编程问答-------------------- 那个是你的qq?? --------------------编程问答-------------------- 你杂不结贴?
还没解决吗? --------------------编程问答-------------------- 我在我机子上运行这个例子没有错误,你看看不是不是端口写错了,或者是jar包没有导全啊 --------------------编程问答-------------------- Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Fault occurred while processing.应该是缺少包 --------------------编程问答-------------------- 缺少什么包啊。
引用 8 楼  的回复:
我在我机子上运行这个例子没有错误,你看看不是不是端口写错了,或者是jar包没有导全啊
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,