2009-07-28 9 views
1

私はthe spring http proxying tutorialのようによく似ていますが、実行時に動作させることができません(私の設定はほとんど同じです。タイプミスで投稿する必要はありません)。SpringのHTTP呼び出し側がnullプロキシを返す、デバッグヘルプが必要

クライアントは正常に起動します(サーバー上のオブジェクトがインスタンス化されていることを確認しました)が、プロキシされたオブジェクトの機能にアクセスしようとするとnullpointer例外が発生しますサーバーオブジェクトのメソッドが決してアクセスされないという事実として)。これは、私が正しくプロキシにアクセスしていないと私に信じさせる。

だから、私の質問は以下のとおりです。

  1. は春のドキュメントに記載されていない任意の一般的な誤差源がありますか?
  2. クライアントからのアクセス以外に、プロキシがサーバーに正しく設定されていることをテストする方法はありますか?クライアントから

スタックトレース:

2009-07-28 16:29:57,270 ERROR ig.ApplicationLifecycleAdvisor | Could not access HTTP invoker remote service at [http:/127.0.0.1:8080/<servlet-context>/<servlet-name>/Server]; nested exception is java.lang.NullPointerException 
org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http:/127.0.0.1:8080/<servlet-context>/<servlet-name>/Server]; nested exception is java.lang.NullPointerException 
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:211) 
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144) 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) 
    at $Proxy0.logon(Unknown Source) 
    at se.<companyname>.client.connection.HttpServerConnection.logon(HttpServerConnection.java:55) 
    at se.<companyname>.client.command.logon.LoginDialog$LoginOkCommand.doExecuteCommand(LoginDialog.java:134) 
    at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:219) 
    at org.springframework.richclient.command.ActionCommand$1.actionPerformed(ActionCommand.java:132) 
    at org.springframework.richclient.command.SwingActionAdapter.actionPerformed(SwingActionAdapter.java:71) 
    at javax.swing.SwingUtilities.notifyAction(Unknown Source) 
    at javax.swing.JComponent.processKeyBinding(Unknown Source) 
    at javax.swing.JComponent.processKeyBindings(Unknown Source) 
    at javax.swing.JComponent.processKeyEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source) 
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source) 
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source) 
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source) 
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.Dialog$1.run(Unknown Source) 
    at java.awt.Dialog$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.awt.Dialog.show(Unknown Source) 
    at java.awt.Component.show(Unknown Source) 
    at java.awt.Component.setVisible(Unknown Source) 
    at java.awt.Window.setVisible(Unknown Source) 
    at java.awt.Dialog.setVisible(Unknown Source) 
    at org.springframework.richclient.dialog.ApplicationDialog.showDialog(ApplicationDialog.java:405) 
    at se.<companyname>.client.jide.docking.JideLifecycleAdvisor.onPreWindowOpen(JideLifecycleAdvisor.java:47) 
    at org.springframework.richclient.application.support.AbstractApplicationWindow.showPage(AbstractApplicationWindow.java:187) 
    at org.springframework.richclient.application.support.AbstractApplicationWindow.showPage(AbstractApplicationWindow.java:158) 
    at se.<companyname>.client.jide.docking.JideApplicationWindow.showPage(JideApplicationWindow.java:131) 
    at org.springframework.richclient.application.Application.openWindow(Application.java:172) 
    at org.springframework.richclient.application.Application.start(Application.java:254) 
    at org.springframework.richclient.application.ApplicationLauncher$1.run(ApplicationLauncher.java:308) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
    at sun.net.www.ParseUtil.toURI(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) 
    at org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor.writeRequestBody(SimpleHttpInvokerRequestExecutor.java:129) 
    at org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor.doExecuteRequest(SimpleHttpInvokerRequestExecutor.java:64) 
    at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:136) 
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:191) 
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:173) 
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:141) 
    ... 54 more 

私は、Webブラウザで以下グレゴリーMostizkyのコードを使用して別のアプリからのプロキシアドレスを開こうとすると、サーバが、クライアント側が私に505を与えます

2009-07-29 10:52:49,023 ERROR ([serverExporter]) [http-127.0.0.1-8080-1] Servlet.service() for servlet serverExporter threw exception 
java.io.EOFException 
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279) 
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2748) 
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780) 
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280) 
    at org.springframework.core.ConfigurableObjectInputStream.<init>(ConfigurableObjectInputStream.java:47) 
    at org.springframework.remoting.rmi.CodebaseAwareObjectInputStream.<init>(CodebaseAwareObjectInputStream.java:81) 
    at org.springframework.remoting.rmi.RemoteInvocationSerializingExporter.createObjectInputStream(RemoteInvocationSerializingExporter.java:105) 
    at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.readRemoteInvocation(HttpInvokerServiceExporter.java:115) 
    at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.readRemoteInvocation(HttpInvokerServiceExporter.java:96) 
    at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73) 
    at org.springframework.web.context.support.HttpRequestHandlerServlet.service(HttpRequestHandlerServlet.java:65) 
    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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    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.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
    at java.lang.Thread.run(Thread.java:619) 

私は問題があることができるかについての損失ではまだだ:/

+0

の根本原因のスタックトレースは掲載されておらず、Springのラッパー例外のスタックトレースのみがポストされていません。完全なトレースを投稿してください。 – skaffman

+0

@skaffman:それは私の問題の一部ですが、これは私が手に入れたものです。何かをもっと得る方法はわかりません。私はあなたにも分を与えるなら、私は完全なスタックトレースを投稿します。 – mikek

+0

URLがnullである可能性があります。NPEはJREライブラリの中から来ているので、あなたは設定から​​何かを省略していなければなりません。 – skaffman

答えて

1

アコー次のスタックトレースを出力しますあなたが投稿したトレースに頼ることは、クライアント側で使用しているサービスURLに何らかの問題があります。問題をデバッグしようとすると、指定したURLに手動で接続しようとします。

ような何か:

URL url = new URL("your_service_url"); 
    int i = url.openConnection().getInputStream().read(); 

EDIT:サーバー上のクライアントとEOFの

505を使用すると、クライアントからサーバーへの接続を取得していることを意味します。私たちはゴミを送り、実際にはOKであるので、失敗します。

テストと春設定で同じURLを使用してもよろしいですか? クライアントcontext.xmlの関連部分を投稿できますか? は特に、元の例外から、この行は奇妙に見えるん:

[HTTP:/127.0.0.1:8080/<サーブレット・コンテキスト>/<サーブレット名> /サーバ]あなたは

+0

私はこれを試して、私のトラブルのために505を得ました(私は上記のスタックトレースを追加しました)。これは、エラーがどこにあるのかについて何か言いますか? – mikek

+0

答えが更新されましたが、まだ解決策はありません –

+0

ああ、はい。これが私のコーディンググローブを手渡すところです。 – mikek

0

ですURLが正しいことを確認しますか?スタックトレースには、http:

Could not access HTTP invoker remote service 
    at [http:/127.0.0.1:8080/<servlet-context>/<servlet-name>/Server]