折磨人的cxf ws配置问题

来源:互联网 发布:星星知我心主题曲歌词 编辑:程序博客网 时间:2024/05/21 20:50

1、因为在web.xml中的配置如下
<servlet>
  <servlet-name>CXFServlet</servlet-name>
  <display-name>CXF Servlet</display-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>
在beans中定义为:
<jaxws:endpoint
        id="increaseUserScore"
        implementor="test.wintalent.IncreaseUserScoreImpl"
        address="/testservice/IncreaseUserScore" />
所以导致出现我在发布的时候出现
Exception in thread "main" java.lang.NullPointerException
 at $Proxy45.addUserScore(Unknown Source)
 at incScore.Client.main(Client.java:24)
而我访问的地址为http://localhost:8080/cxfSpring/testservices/IncreaseUserScore?wsdl
出现此异常Can't find the request for xxx's Observer
后来地址改为http://localhost:8080/cxfSpring/services/testservices/IncreaseUserScore?wsdl
后访问正常,原因是因为我在CXFServlet中配置加了services,如果不加的话,则访问方法正常
注意,通过访问http://localhost:8080/cxfSpring/services   能看到工程中的所有发布的接口,此时点击相应接口链接即可看成完整的接口访问地址和对应的xml信息(注:若在web.xml中CXFServlet的url-pattern标签中的值为/*则访问地址为http://localhost:8080/cxfSpring/);
2、jar包冲突,导致出现以下异常,可是在服务器端查看已实现正常调用
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
 at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:140)
 at org.apache.cxf.attachment.AttachmentUtil.<clinit>(AttachmentUtil.java:61)
 at org.apache.cxf.interceptor.AttachmentInInterceptor.handleMessage(AttachmentInInterceptor.java:61)
 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)
 at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:733)
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2201)
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2071)
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1925)
 at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
 at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:662)
 at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)
 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
 at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
 at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
 at $Proxy35.addUserScore(Unknown Source)
 at incScore.Client.main(Client.java:24)

后来把公司框架里的jar包全拷进去,把cxf 2.3.0的jar包全去掉后,就好了,注:我的工程用的是jdk 5.0的,因为公司框架中之前有人做过cxf的,就好了,只是具体是哪一个jar包的问题,由于项目中要用就没去仔细研究了,如果有哪位朋友看知道了,麻烦来blog回复下!

3、获取值时报空值针异常,信息如下:
Exception in thread "main" java.lang.NullPointerException
 at $Proxy45.addUserScore(Unknown Source)
 at incScore.Client.main(Client.java:24)
我代码的第24行为:调用接口的代码
原因是:在服务器端口没有设置@WebResult(name="addUserScoreResult"),而我在写客户端接口时使用了它,故出现此异常!

ice(targetNamespace = "http://wintalent.test/")
public interface IncreaseUserScore {
    @WebMethod(operationName="addUserScore")
    public @WebResult(name="addUserScoreResult")
    boolean addUserScore(@WebParam(name = "username") String username,
                                @WebParam(name = "password") String password,
                                @WebParam(name = "addScoreEmail")  String addScoreEmail,
                                @WebParam(name = "type") Integer type);
   
    @WebMethod(operationName="addUserScoreByUser")
    public @WebResult(name="addUserScoreByUserResult")
    boolean addUserScoreByUser(@WebParam(name = "rmiUser") CxfWebseriviceUser rmiUser,
                                @WebParam(name = "addScoreEmail") String addEmail,
                                @WebParam(name = "type") Integer type);

}

原创粉丝点击