[jboss-user] [Remoting] - Re: Config for EJB3 over servlet-invoker with compression

ron.sigal@jboss.com do-not-reply at jboss.com
Thu Aug 9 21:54:07 EDT 2007


Based on your July 23 note, I guess you worked out the configuration problems, but just in case, here a couple of comments.

anonymous wrote : 
  | ...
  | 14:41:07,203 INFO  [TransactionManagerService] Binding TransactionManager JNDI Reference
  | 
  | 14:41:08,562 WARN  [MarshalFactory] Found marshaller fully qualified class name within locator parameters, but was unable to load class: org.jboss.remoting.marshal.compress.CompressingMarshaller
  | 			 
  | 14:41:11,390 INFO  [EJB3Deployer] Starting java:comp multiplexer
  | ...
  | 

This part surprises me.  org.jboss.remoting.marshal.MarshalFactory.getMarshaller() looks for a datatype first and tries to get a marshaller based on the datatype.  Given that "serializable" is a built-in datatype, it should retrieve a SerializableMarshaller and go away happy.  I'm not sure why it's going on to look for a marshaller based on the marshaller's class name.  Maybe turn on TRACE logging and see what you get.  In any case, you want to take out the datatype=serializable.

The other error message suggests a mismatch between the InvokerLocator constructed from the Connector MBean in the jboss-service.xml file and the InvokerLocator found in the web.xml file.  The message 


  | 14:41:37,656 ERROR [[/servlet-invoker]] Servlet /servlet-invoker threw load() exception
  | javax.servlet.ServletException: Can not find servlet server invoker with same locator as specified (
  | servlet://localhost:8080/servlet-invoker/ServerInvokerServlet)
  | 

comes from org.jboss.remoting.transport.servlet.web.ServerInvokerServlet using the the InvokerLocator found in the web.xml file to find a matching server invoker.  However, the server invoker constructed in accordance with the  jboss-service.xml file has an InvokerLocator with parameters like marshaller, unmarshaller, and datatype in it.  But ServerInvokerServlet is looking for "servlet://localhost:8080/servlet-invoker/ServerInvokerServlet", which must be what appears in your web.xml file.  I.e., you want to change the InvokerLocator in web.xml to match the InvokerLocator of the actual server.  If you set the logging level to DEBUG or TRACE and look in the server log file, you should see a message like "... started for locator ..." with the real InvokerLocator.

Concerning the unimpressive compression performance, the jboss-service.xml file from July 23 still has the "datatype" - maybe you're not really using the CompressingMarshaller ... ?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4072806#4072806

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4072806



More information about the jboss-user mailing list