hi all,
I'm using Hessian/Burlap protocol (3.0.19) in a client/server application
the server uses the SpringFramework with Apache + Tomcat 5.5.12 using
AJP3 connector
when the client creates a HessianProxy or BurlapProxy the ProxyFactory
makes a GET request to the server
using Hessian and the apache URL this request hangs (until client
timeout expires), it also hangs calling Tomcat server directly
using Burlap and the apache URL the request also hangs (forever, since
BurlapProxyFactory has no timeout parameter), calling Tomcat server
directly this request hangs until Tomcat connectionTimeout expires
throwing a Read Timeout exception.
in other enviroments (development) this call makes the server to throw
the following exception:
com.caucho.burlap.io.BurlapProtocolException: expected '<' at end of file
at com.caucho.burlap.io.BurlapInput.error(BurlapInput.java:1657)
at
com.caucho.burlap.io.BurlapInput.expectedChar(BurlapInput.java:1645)
at com.caucho.burlap.io.BurlapInput.parseTag(BurlapInput.java:1545)
at com.caucho.burlap.io.BurlapInput.expectTag(BurlapInput.java:1523)
at com.caucho.burlap.io.BurlapInput.readCall(BurlapInput.java:250)
at
com.caucho.burlap.server.BurlapSkeleton.invoke(BurlapSkeleton.java:93)
at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
at
org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:346)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
I have located the source code that makes this call in
BurlapProxyFactory.create(), and recompiled the library with the
following lines commented and everything works.
public Object create(Class api, String urlName)
throws MalformedURLException
{
URL url = new URL(urlName);
// try {
// // clear old keepalive connections
// HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//
// conn.setRequestProperty("Connection", "close");
//
// InputStream is = conn.getInputStream();
//
// is.close();
//
// conn.disconnect();
// } catch (IOException e) {
// e.printStackTrace();
// }
BurlapProxy handler = new BurlapProxy(this, url);
return Proxy.newProxyInstance(api.getClassLoader(),
new Class[] { api,
BurlapRemoteObject.class },
handler);
}
may I expect any problem from this change?
what are the licensing issues about hessian/burlap code
modification/reuse? I would like to add a connection timeout parameter
to BurlapProxyFactory.
best regards
--
rodolfo martín
tecnología
tlf : 91 788 60 96 | ext: 159
www.idealista.com
_______________________________________________
hessian-interest mailing list
[email protected]
http://maillist.caucho.com/mailman/listinfo/hessian-interest