2 Replies Latest reply on Dec 1, 2009 4:35 AM by Maciej Madej

    Error using UnifiedInvoker

    Maciej Madej Newbie

      Hi,

      I've configured UnifiedInvoker for JNDI as dscribed here:

      http://www.jboss.org/community/wiki/JNDIOverHTTPWithUnifiedInvoker

      My jndi properties:

      
      java.naming.factory.initial=org.jboss.naming.HttpNamingContextFactory
      java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
      java.naming.provider.url=http://localhost:8180/unified-invoker/JNDIFactory
      


      My web.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE web-app PUBLIC
       "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
       "http://java.sun.com/dtd/web-app_2_3.dtd">
      
      <web-app>
       <servlet>
       <servlet-name>JNDIFactory</servlet-name>
       <description>A servlet that exposes the JBoss JNDI Naming service stub
       through http. The return content is a serialized
       MarshalledValue containg the org.jnp.interfaces.Naming stub. This
       configuration handles requests for the standard JNDI naming service.
       </description>
       <servlet-class>org.jboss.invocation.http.servlet.NamingFactoryServlet</servlet-class>
       <init-param>
       <param-name>namingProxyMBean</param-name>
       <param-value>jboss:service=proxyfactory,type=unified,transport=servlet,target=naming</param-value>
       </init-param>
       <init-param>
       <param-name>proxyAttribute</param-name>
       <param-value>Proxy</param-value>
       </init-param>
       <load-on-startup>2</load-on-startup>
       </servlet>
       <servlet-mapping>
       <servlet-name>JNDIFactory</servlet-name>
       <url-pattern>/JNDIFactory/*</url-pattern>
       </servlet-mapping>
      </web-app>


      My jboss-service.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <server>
       <!-- Expose the Naming service interface via the UnifiedInvoker -->
       <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
       name="jboss:service=proxyfactory,type=unified,transport=servlet,target=naming">
       <attribute name="InvokerName">jboss:service=invoker,type=unified,transport=servlet</attribute>
       <attribute name="TargetName">jboss:service=Naming</attribute>
       <attribute name="JndiName"></attribute>
       <attribute name="ExportedInterface">org.jnp.interfaces.Naming</attribute>
       <attribute name="ClientInterceptors">
       <interceptors>
       <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
       <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
       <interceptor>org.jboss.naming.interceptors.ExceptionInterceptor</interceptor>
       <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
       </interceptors>
       </attribute>
       <depends>jboss:service=invoker,type=unified,transport=servlet</depends>
       </mbean>
      
       <!-- Unified invoker (based on remoting) -->
       <mbean code="org.jboss.invocation.unified.server.UnifiedInvoker"
       name="jboss:service=invoker,type=unified,transport=servlet">
       <depends>jboss:service=TransactionManager</depends>
       <depends>jboss.remoting:service=connector,transport=servlet</depends>
       </mbean>
      
       <mbean code="org.jboss.remoting.transport.Connector"
       name="jboss.remoting:service=connector,transport=servlet"
       display-name="Servlet transport Connector">
       <attribute name="Configuration">
       <config>
       <invoker transport="servlet">
       <attribute name="dataType" isParam="true">invocation</attribute>
       <attribute name="marshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationMarshaller</attribute>
       <attribute name="unmarshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationUnMarshaller</attribute>
       <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
       <attribute name="serverBindPort">8180</attribute>
       <attribute name="path">unified-invoker/ServerInvokerServlet</attribute>
       </invoker>
       <handlers>
       <handler subsystem="invoker">jboss:service=invoker,type=unified,transport=servlet</handler>
       </handlers>
       </config>
       </attribute>
       </mbean>
      </server>


      When I'm trying to acces JNDI I got:

      Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker after 1 attempt(s)
      at org.jboss.remoting.transport.http.HTTPClientInvoker.makeInvocation(HTTPClientInvoker.java:249)
      at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:161)
      at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165)
      at org.jboss.remoting.Client.invoke(Client.java:1724)
      at org.jboss.remoting.Client.invoke(Client.java:629)
      at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:184)
      at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
      at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)
      at org.jboss.naming.interceptors.ExceptionInterceptor.invoke(ExceptionInterceptor.java:57)
      ... 50 more
      Caused by: java.io.EOFException
      at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:580)
      at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:369)
      at org.jboss.remoting.transport.http.HTTPClientInvoker.makeInvocation(HTTPClientInvoker.java:231)
      ... 58 more