4 Replies Latest reply on Feb 3, 2011 10:20 AM by sepgs2004

    ProxyContext is not visible from class loader

    mavalla

      Hi,
      I am developing my first Web Service using Jboss-WS and it works fine.
      The web service is called UseOccupationsService, the method to call String getUseOccupationDescriptions(String, String) and it is using the following location: http://127.0.0.1:8080/MRE/webservices/UseOccupations.

      But when I access this page with a browser (http://127.0.0.1:8080/MRE/webservices/UseOccupations) I get the following error:

      Sorry, something seems to have gone wrong... here are the details:
      java.lang.IllegalArgumentException: interface org.jboss.mx.util.ProxyContext is not visible from class loader


      And the exception in the log is:

      [AxisServlet] Exception:
      java.lang.IllegalArgumentException: interface org.jboss.mx.util.ProxyContext is not visible from class loader
       at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
       at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
       at org.jboss.mx.util.MBeanProxy.get(MBeanProxy.java:76)
       at org.jboss.mx.util.MBeanProxy.get(MBeanProxy.java:64)
       at org.jboss.webservice.server.AbstractServlet.reportAvailableServices(AbstractServlet.java:87)
       at org.jboss.webservice.server.ServiceEndpointServlet.doGet(ServiceEndpointServlet.java:69)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
       at org.jboss.axis.transport.http.AxisServletBase.service(AxisServletBase.java:370)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
       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.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       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:856)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
       at java.lang.Thread.run(Thread.java:595)
      


      As I said before, the web service works fine, but I am a little worried about this error. I know that the page should show a list of the web services located in the server.

      Here I send you the configuration files:
      UseOccupationService.wsdl:
      <?xml version="1.0" encoding="UTF-8"?>
      
      <definitions name="UseOccupationsService" targetNamespace="http://ReservationSystem.hotelebusiness.com/webservices" xmlns:tns="http://ReservationSystem.hotelebusiness.com/webservices" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns2="http://ReservationSystem.hotelebusiness.com/webservices/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
       <types>
       <schema targetNamespace="http://ReservationSystem.hotelebusiness.com/webservices/types" xmlns:tns="http://ReservationSystem.hotelebusiness.com/webservices/types" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.w3.org/2001/XMLSchema">
       <complexType name="getUseOccupationDescriptions">
       <sequence>
       <element name="String_1" type="string" nillable="true"/>
       <element name="String_2" type="string" nillable="true"/></sequence></complexType>
       <complexType name="getUseOccupationDescriptionsResponse">
       <sequence>
       <element name="result" type="string" nillable="true"/></sequence></complexType>
       <element name="getUseOccupationDescriptions" type="tns:getUseOccupationDescriptions"/>
       <element name="getUseOccupationDescriptionsResponse" type="tns:getUseOccupationDescriptionsResponse"/></schema></types>
       <message name="IUseOccupationsWS_getUseOccupationDescriptions">
       <part name="parameters" element="ns2:getUseOccupationDescriptions"/></message>
       <message name="IUseOccupationsWS_getUseOccupationDescriptionsResponse">
       <part name="result" element="ns2:getUseOccupationDescriptionsResponse"/></message>
       <portType name="IUseOccupationsWS">
       <operation name="getUseOccupationDescriptions">
       <input message="tns:IUseOccupationsWS_getUseOccupationDescriptions"/>
       <output message="tns:IUseOccupationsWS_getUseOccupationDescriptionsResponse"/></operation></portType>
       <binding name="IUseOccupationsWSBinding" type="tns:IUseOccupationsWS">
       <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
       <operation name="getUseOccupationDescriptions">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal"/></input>
       <output>
       <soap:body use="literal"/></output></operation></binding>
       <service name="UseOccupationsService">
       <port name="IUseOccupationsWSPort" binding="tns:IUseOccupationsWSBinding">
       <soap:address location="REPLACE_WITH_ACTUAL_URL"/></port></service></definitions>


      jaxrpc-mapping.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <java-wsdl-mapping xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
       <package-mapping>
       <package-type>com.hotelebusiness.ReservationSystem.web.webservices</package-type>
       <namespaceURI>http://ReservationSystem.hotelebusiness.com/webservices/types</namespaceURI>
       </package-mapping>
       <package-mapping>
       <package-type>com.hotelebusiness.ReservationSystem.web.webservices</package-type>
       <namespaceURI>http://ReservationSystem.hotelebusiness.com/webservices</namespaceURI>
       </package-mapping>
       <java-xml-type-mapping>
       <java-type>com.hotelebusiness.ReservationSystem.web.webservices.IUseOccupationsWS_getUseOccupationDescriptions_RequestStruct</java-type>
       <root-type-qname xmlns:typeNS="http://ReservationSystem.hotelebusiness.com/webservices/types">typeNS:getUseOccupationDescriptions</root-type-qname>
       <qname-scope>complexType</qname-scope>
       <variable-mapping>
       <java-variable-name>String_1</java-variable-name>
       <xml-element-name>String_1</xml-element-name>
       </variable-mapping>
       <variable-mapping>
       <java-variable-name>String_2</java-variable-name>
       <xml-element-name>String_2</xml-element-name>
       </variable-mapping>
       </java-xml-type-mapping>
       <java-xml-type-mapping>
       <java-type>com.hotelebusiness.ReservationSystem.web.webservices.IUseOccupationsWS_getUseOccupationDescriptions_ResponseStruct</java-type>
       <root-type-qname xmlns:typeNS="http://ReservationSystem.hotelebusiness.com/webservices/types">typeNS:getUseOccupationDescriptionsResponse</root-type-qname>
       <qname-scope>complexType</qname-scope>
       <variable-mapping>
       <java-variable-name>result</java-variable-name>
       <xml-element-name>result</xml-element-name>
       </variable-mapping>
       </java-xml-type-mapping>
       <service-interface-mapping>
       <service-interface>com.hotelebusiness.ReservationSystem.web.webservices.UseOccupationsService</service-interface>
       <wsdl-service-name xmlns:serviceNS="http://ReservationSystem.hotelebusiness.com/webservices">serviceNS:UseOccupationsService</wsdl-service-name>
       <port-mapping>
       <port-name>IUseOccupationsWSPort</port-name>
       <java-port-name>IUseOccupationsWSPort</java-port-name>
       </port-mapping>
       </service-interface-mapping>
       <service-endpoint-interface-mapping>
       <service-endpoint-interface>com.hotelebusiness.ReservationSystem.web.webservices.IUseOccupationsWS</service-endpoint-interface>
       <wsdl-port-type xmlns:portTypeNS="http://ReservationSystem.hotelebusiness.com/webservices">portTypeNS:IUseOccupationsWS</wsdl-port-type>
       <wsdl-binding xmlns:bindingNS="http://ReservationSystem.hotelebusiness.com/webservices">bindingNS:IUseOccupationsWSBinding</wsdl-binding>
       <service-endpoint-method-mapping>
       <java-method-name>getUseOccupationDescriptions</java-method-name>
       <wsdl-operation>getUseOccupationDescriptions</wsdl-operation>
       <wrapped-element/>
       <method-param-parts-mapping>
       <param-position>0</param-position>
       <param-type>java.lang.String</param-type>
       <wsdl-message-mapping>
       <wsdl-message xmlns:wsdlMsgNS="http://ReservationSystem.hotelebusiness.com/webservices">wsdlMsgNS:IUseOccupationsWS_getUseOccupationDescriptions</wsdl-message>
       <wsdl-message-part-name>String_1</wsdl-message-part-name>
       <parameter-mode>IN</parameter-mode>
       </wsdl-message-mapping>
       </method-param-parts-mapping>
       <method-param-parts-mapping>
       <param-position>1</param-position>
       <param-type>java.lang.String</param-type>
       <wsdl-message-mapping>
       <wsdl-message xmlns:wsdlMsgNS="http://ReservationSystem.hotelebusiness.com/webservices">wsdlMsgNS:IUseOccupationsWS_getUseOccupationDescriptions</wsdl-message>
       <wsdl-message-part-name>String_2</wsdl-message-part-name>
       <parameter-mode>IN</parameter-mode>
       </wsdl-message-mapping>
       </method-param-parts-mapping>
       <wsdl-return-value-mapping>
       <method-return-value>java.lang.String</method-return-value>
       <wsdl-message xmlns:wsdlMsgNS="http://ReservationSystem.hotelebusiness.com/webservices">wsdlMsgNS:IUseOccupationsWS_getUseOccupationDescriptionsResponse</wsdl-message>
       <wsdl-message-part-name>result</wsdl-message-part-name>
       </wsdl-return-value-mapping>
       </service-endpoint-method-mapping>
       </service-endpoint-interface-mapping>
      </java-wsdl-mapping>


      webservices.xml:
      <webservices
       xmlns="http://java.sun.com/xml/ns/j2ee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd"
       version="1.1">
      
       <webservice-description>
       <webservice-description-name>UseOccupationsService</webservice-description-name>
       <wsdl-file>WEB-INF/wsdl/UseOccupationsService.wsdl</wsdl-file>
       <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
       <port-component>
       <port-component-name>PortComponent</port-component-name>
       <wsdl-port>IUseOccupationsWSPort</wsdl-port>
       <service-endpoint-interface>com.hotelebusiness.ReservationSystem.web.webservices.IUseOccupationsWS</service-endpoint-interface>
       <service-impl-bean>
       <servlet-link>UseOccupations</servlet-link>
       </service-impl-bean>
       </port-component>
       </webservice-description>
      </webservices>


      web.xml (only the begining):
      <?xml version="1.0" encoding="ISO-8859-1"?>
      
      <!DOCTYPE web-app
       PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
       "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
      
      
      
      <web-app>
       <servlet>
       <servlet-name>action</servlet-name>
       <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
       <init-param>
       <param-name>config</param-name>
       <param-value>/WEB-INF/struts-config.xml</param-value>
       </init-param>
       <init-param>
       <param-name>debug</param-name>
       <param-value>2</param-value>
       </init-param>
       <init-param>
       <param-name>detail</param-name>
       <param-value>2</param-value>
       </init-param>
       <!-- jboss location, see EJBFactory.java -->
       <init-param>
       <param-name>PROVIDER_URL</param-name>
       <param-value>127.0.0.1:1099</param-value>
       </init-param>
       <load-on-startup>2</load-on-startup>
       </servlet>
      
       <!-- Web services -->
       <servlet>
       <servlet-name>UseOccupations</servlet-name>
       <servlet-class>com.hotelebusiness.ReservationSystem.web.webservices.UseOccupationsWS</servlet-class>
       </servlet>
      
       <!-- Standard Action Servlet Mapping -->
       <servlet-mapping>
       <servlet-name>action</servlet-name>
       <url-pattern>*.do</url-pattern>
       </servlet-mapping>
      
       <!-- Servlet mapping for webservices -->
       <servlet-mapping>
       <servlet-name>UseOccupations</servlet-name>
       <url-pattern>webservices/UseOccupations</url-pattern>
       </servlet-mapping>
      
       <!-- The Session timeout in minutes -->
       <session-config>
       <session-timeout>15</session-timeout>
       </session-config>
      
       <!-- The Usual Welcome File List -->
       <welcome-file-list>
       <welcome-file>index.jsp</welcome-file>
       </welcome-file-list>


      I tried to find the same error in the forum and in google and no luck.
      Any help would be greatly appreciated.
      Thank you very much,
      Manuel Valladares

        • 1. Re: ProxyContext is not visible from class loader
          dchon

          I'm also experiencing the exact same thing. I haven't figured it out yet but I'm working on it. It's driving me up the wall. I'm using JBossWS tools 1.0 to generate my all my deployment artifacts (wsdl file, jaxrpc-mapping file, etc). I'm using a document/literal wrapped type wsdl configuration.

          Anyone out there run into this or have a solution to this? TIA!

          • 2. Re: ProxyContext is not visible from class loader
            mgraf

            I got the same exception, is it possible that you include jbossall-client.jar into your war-archive? i excluded the jar from the deployment and now it works :-)

            seems to be something like the global appserver context can´t access the jar because its loaded from the deployment and not from jboss global lib..

            • 3. Re: ProxyContext is not visible from class loader
              thomas.diesler

              This is probably not a WS issue. Rather it is related to classloading.

              What jboss version is this? How did you install it?

              • 4. Re: ProxyContext is not visible from class loader
                sepgs2004

                In my case, I got this Exception when I was trying to test the webservice by accessing the wsdl on the browser...

                Also I got this exception when I try to create a webreference in .NET to associate this webservice (deployed in JBoss ear)

                 

                Actual fact is - I am new to Webservice practicals formats etc

                 

                Initially, I confirmed this in JBoss console log:

                09:57:29,366 INFO  [AxisService] WSDD published to: C:\jboss-4.0.3SP1\server\default\data\wsdl\project.ear\projectWeb.war\ProjectService.wsdd

                09:57:29,382 INFO  [AxisService] Web Service deployed: http://dell-ramba:8080/mlo/ProjectWS

                 

                So I tried placing the following URLs on the browser to access the wsdl (bear with my ignorance)

                http://dell-ramba:8080/mlo/ProjectWS

                http://dell-ramba:8080/mlo/ProjectWS.wsdl

                 

                Both failed. Second one gave the above mentioned exception...

                Then my colleague asked me to do the following URL instead (a ? in place of .)

                http://dell-ramba:8080/mlo/ProjectWS?wsdl

                Then it brought me the wsdl xml....Also on the .NET project, it successfully located the webservice and I was able to create a reference...

                 

                Since I got the same Exception, I googled and got misled to think there is some class loading issues....

                So I thought it could help (avoid confusion and time) for the newbees like me....