2016-04-18 3 views
7

クライアントオブジェクトのactivateメソッドを呼び出すときにnullポインタ例外が発生しました。これは私のコードです。TaskClientでactivateメソッドを呼び出すときにjava.lang.NullPointerExceptionを取得する

@RequestMapping(value="/loanreq",method=RequestMethod.GET) 
    public String loanRequest(HttpServletRequest req,HttpSession session) throws DroolsParserException, IOException, NamingException{ 

    StatefulKnowledgeSession ksession = processEngine.getKsession(); 

    ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WSHumanTaskHandler()); 

    TaskClient client = new TaskClient(new MinaTaskClientConnector("UserTask",new MinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener()))); 

     client.connect("ipaddress", 9123); 
     BlockingTaskOperationResponseHandler responseHandler = 

       new BlockingTaskOperationResponseHandler(); 
     client.activate(3, "krisv", responseHandler); 

     client.start(3, "krisv", responseHandler); 

      client.complete(3, "krisv", null, responseHandler); 




    Map<String,Object> params=new HashMap(); 
    params.put("employee", "krisv"); 


    ProcessInstance processInstance =ksession.startProcess("com.vr.controller2",params); 


    System.out.println("id is "+processInstance.getId()); 

    return "return1"; 
    } 

と私はデバッグ中に、私はクライアントオブジェクトを見てきましたが、それは私がこのerror.Iは時にこのエラーを取得しています取得していますなぜ知らnull.Dontではありません次の例外

java.lang.NullPointerException 
at org.jbpm.task.service.mina.MinaTaskClientConnector.write(MinaTaskClientConnector.java:118) 
at org.jbpm.task.service.TaskClient.activate(TaskClient.java:651) 
at com.vr.controller.hellocontroller.loanRequest(hellocontroller.java:181) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 

を取得しています"client.connect()"ではなく、 "client.activate()"という行があります。

+0

の可能な複製を、[NULLポインタ例外で、どのように何私はそれを修正?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – Kenster

+0

私はそうのような問題を持っていけませんこれは別のケースです。クライアントの接続と開始を確立しています。ここでは、client.connect()ではclient.start()(jbpmに関連するもの)で例外が発生していません。 – smith

+0

@smithここで問題となるのは、 'client.connect()'は例外をスローしません。単に接続されているかどうかを示すために 'true'または' false'を返します。 –

答えて

4

sessionMinaTaskClientConnectornullであるためスタックトレースによるとこのエラーが表示されます。私はTaskClientMinaTaskClientConnectorのソースコードから理解する限り、これはコードのこのブロック内で、なぜならconnect方法で故障が原因で発生:

try { 
     connector.getFilterChain().addLast("codec",new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); 

     ConnectFuture future1 = connector.connect(address); 
     future1.awaitUninterruptibly(); 
     if (!future1.isConnected()) { 
      return false; 
     } 
     session = future1.getSession(); 
     return true; 
} catch (Exception e) { 
     logger.error(e.getMessage(), e); 
     return false; 
} 

あなたはログまたはcatchブロックの中にブレークポイントを置くことによって、正確なエラーを見つけることができます。

また、私はconnectメソッドの結果を確認します(これは接続成功について示すboolean値を返します)、このような何か助言する:

if (client.connect("ipaddress", 9123) { 
     BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler(); 
     client.activate(3, "krisv", responseHandler); 
     client.start(3, "krisv", responseHandler); 
     client.complete(3, "krisv", null, responseHandler); 
     Map<String,Object> params=new HashMap(); 
     params.put("employee", "krisv"); 
     ProcessInstance processInstance =ksession.startProcess("com.vr.controller2",params); 
     System.out.println("id is "+processInstance.getId()); 
     return "return1"; 
} else { 
     //TODO code to report connection error 
} 
+0

私はこのconnector.connect()を使っていますが、それはnosuchmethodとして表示されています。そのコネクタMinaTaskClientConnectorです。 – smith

+0

@smith 'MinaTaskClientConnector.connect'は' TaskClient.connect'の内部で呼び出されます。このメソッドは 'false'ではなく' true'を返すだけです。 –

+0

ここには、このMinaTaskClientConnector内にgetfilterchain()メソッドがありません。 – smith

関連する問題