写了一个webservice 方法都没错,
public List<Category> getAllCategory(String areaCode, String channelId) {
        //具体逻辑省略了
return catlist;
}
调式的时候 代码都没错 就是到 return catlist;这一句就报异常了 java.lang.IllegalStateException
这个是哪的问题?

解决方案 »

  1.   

    这个是服务端的方法 
      @WebService(endpointInterface = "com.xy.dcp.ws.IWSDataService")
    public class WSDataServiceImpl implements IWSDataService { private DcpDataService dcpDataService;

    //@WebMethod
    @Override
    public List<Category> getAllCategory(String areaCode, String channelId) {
    // TODO Auto-generated method stub
    //Category cat =new Category();
    //cat.setAreaId(2222l);
    System.out.println("wwww");
    // return dcpDataService.getAllCategory("ALL", "1");
    Map map =new HashMap<String,Category>();
    List<Category> catlist=new ArrayList<Category>();
    Category cat=new Category();
    cat.setAreaId(2333l);
    cat.setCatCode("1");

    return catlist;
    } 客户端调用时 报一个这样的错
    [code=Java]Exception in thread "Thread-11" javax.xml.ws.WebServiceException: java.lang.NullPointerException
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:142)
    at $Proxy111.getAllCategory(Unknown Source)
    at com.xy.dcp.cache.impl.ClientDataManagerImpl.getAllCategory(ClientDataManagerImpl.java:18)
    at com.xy.dcp.cache.impl.CacheManagerImpl.categoryTask(CacheManagerImpl.java:36)
    at com.xy.dcp.cache.StartClientServer.initData(StartClientServer.java:47)
    at com.xy.dcp.cache.StartClientServer.run(StartClientServer.java:18)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.NullPointerException
    at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:110)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:420)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
    ... 6 more
    wwww
    2010-12-2 16:45:08 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
    信息: Interceptor has thrown exception, unwinding now
    org.apache.cxf.interceptor.Fault: argument type mismatch
    at org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:116)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
    at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
    at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:285)
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:168)
    at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:175)
    at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:153)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: org.apache.cxf.interceptor.Fault: argument type mismatch
    at org.apache.cxf.jaxws.interceptors.WrapperHelper$ReflectWrapperHelper.createWrapperObject(WrapperHelper.java:312)
    at org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:102)
    ... 23 more
    Caused by: java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.cxf.jaxws.interceptors.WrapperHelper$ReflectWrapperHelper.createWrapperObject(WrapperHelper.java:296)
    ... 24 more
    2010-12-2 16:45:08 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
    信息: Interceptor has thrown exception, unwinding now
    org.apache.cxf.interceptor.Fault: Could not send Message.
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
    at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:260)
    at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
    at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:285)
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:168)
    at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:175)
    at org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:153)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    ... 12 more
    wwww
    2010-12-2 16:45:13 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
    信息: Interceptor has thrown exception, unwinding now
    org.apache.cxf.interceptor.Fault: argument type mismatch
      

  2.   

    Caused by: org.apache.cxf.interceptor.Fault: argument type mismatch参数类型错误!!
      

  3.   

    at com.xy.dcp.cache.impl.ClientDataManagerImpl.getAllCategory(ClientDataManagerImpl.java:18)检查下这个
      

  4.   

    at com.xy.dcp.cache.impl.ClientDataManagerImpl.getAllCategory(ClientDataManagerImpl.java:18)
    at com.xy.dcp.cache.impl.CacheManagerImpl.categoryTask(CacheManagerImpl.java:36)
    这写的挺清楚啊,空指针,
    看看你的的代码 是如何对空做判断的
    在去数据库里看看 该行该字段的 类型 是否为空 是“” 还是null
      

  5.   

    ClientDataManagerImpl.getAllCategory()这个方法 去调用服务端的一个方法
     public List<Category> getAllCategory(String areaCode, String channelId) ()[ 服务端的这个方法调试是有值的 但是返回到客户端就没值了 所以才有那些异常 。但是我不知道为什么 客户端拿不到值
      

  6.   

    你方法结束之前没有把cat添加到list中去,返回的是一个空的集合,而且不明白你白白的创建一个map对象是干什么用的
      

  7.   


    public List<Category> getAllCategory(String areaCode, String channelId) {
    List<Category> catlist=new ArrayList<Category>();
    Category cat=new Category();
    cat.setAreaId(2333l);
    cat.setCatCode("1");
    catlist.add(cat);
    return catlist;
    }这是最原始的 ,上面的是我调试时 写了些忘记去了
      

  8.   


    public class ClientDataManagerImpl implements IClientDataManager{
    private IWSDataService wsClient;
    private String areaCode;
    private String channelId; public List<Category> getAllCategory() {
    System.out.print(wsClient);

    List<Category> cat = wsClient.getAllCategory(areaCode, channelId);
    return cat;
    }
    这个是客户端的
      

  9.   


    public class ClientDataManagerImpl implements IClientDataManager{
    private IWSDataService wsClient;
    private String areaCode;
    private String channelId; public List<Category> getAllCategory() {
    System.out.print(wsClient);

    List<Category> cat = wsClient.getAllCategory(areaCode, channelId);
    return cat;
    }
    这个是客户端的