6 Replies Latest reply on Aug 11, 2006 3:24 PM by ryan.block

    WSRP Producer issues with Vignette as Consumer

    amonbeckler

      I have download and installed JBoss Portal 2.4.0-Beta1 packaged with JBoss AS 4.0.4. I am able to bring up the JBoss portal webpage, and login as admin. The standard install has several portlets that show that they are "remotable". But when I try to consume them in Vignette it fails. In Vignette I defined the Producer URL as "http://localhost:8080/portal-wsrp/MarkupService?wsdl". I believe that is working correctly, because Vignette says it adds the producer correctly. If I then try to add a portlet from that producer, it shows me all the available portlets. But if I select any one of them and say "add", it fails. Am I missing some configuration? Or is the WSRP producer actually returning a null when it should be returning a value? I have verified I can use my Vignette setup as a consumer from Pluto/wsrp4j producer.

      Vignette throws a NPE:

      Error com.vignette.portal.website.admin.components.c_portlet_management_remoteportlets - Problem during implicit portlet creation java.lang.NullPointerException at com.vignette.portal.portlet.managment.internal.implementation.provider.wsrp.RemotePortletImpl.<init>(RemotePortletImpl.java:73)



      The server.log in JBoss shows:
      2006-06-19 14:11:31,524 DEBUG [org.jboss.ws.server.ServiceEndpointServlet] doPost: /portal-wsrp/PortletManagementService
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.soap.MessageContextAssociation] pushMessageContext: org.jboss.ws.soap.SOAPMessageContextImpl@1ab735a
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.server.ServiceEndpoint] BEGIN handleRequest: jboss.ws:di=portal-wsrp.war,service=WSRPService,port=WSRPPortletManagementService
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.server.ServiceEndpoint] Init handler chain with [0] handlers
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.handler.HandlerChainBaseImpl] Create a handler chain for roles: []
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.handler.HandlerChainBaseImpl] init: [config=null]
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.soap.MessageFactoryImpl] createMessage: [contentType=text/xml; charset=utf-8]
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.soap.SOAPContentElement] setXMLFragment: <clonePortlet xmlns='urn:oasis:names:tc:wsrp:v1:types'>
       <registrationContext xsi:nil='true'/>
       <portletContext>
       <portletHandle>samples.WeatherPortlet</portletHandle>
       </portletContext>
       <userContext>
       <userContextKey>UBER_ADMIN_KEY</userContextKey>
       </userContext>
       </clonePortlet>
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.server.ServiceEndpoint] Incomming SOAPMessage
      <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <soapenv:Header/>
       <soapenv:Body>
       <clonePortlet xmlns='urn:oasis:names:tc:wsrp:v1:types'>
       <registrationContext xsi:nil='true'/>
       <portletContext>
       <portletHandle>samples.WeatherPortlet</portletHandle>
       </portletContext>
       <userContext>
       <userContextKey>UBER_ADMIN_KEY</userContextKey>
       </userContext>
       </clonePortlet>
       </soapenv:Body>
      </soapenv:Envelope>
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.soap.SOAPMessageDispatcher] getDispatchDestination: {urn:oasis:names:tc:wsrp:v1:intf}clonePortlet
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.binding.soap.SOAPBindingProvider] unbindRequestMessage: {urn:oasis:names:tc:wsrp:v1:intf}clonePortlet
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.binding.EndpointInvocation] setRequestParamValue: [name={urn:oasis:names:tc:wsrp:v1:types}clonePortlet,value=org.jboss.ws.soap.SOAPBodyElementDoc]
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Found java method: public abstract org.jboss.portal.wsrp.core.PortletContext org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType.clonePortlet(org.jboss.portal.wsrp.core.ClonePortlet) throws org.jboss.portal.wsrp.core.InvalidUserCategoryFault,org.jboss.portal.wsrp.core.AccessDeniedFault,org.jboss.portal.wsrp.core.OperationFailedFault,org.jboss.portal.wsrp.core.InvalidHandleFault,org.jboss.portal.wsrp.core.InvalidRegistrationFault,org.jboss.portal.wsrp.core.InconsistentParametersFault,org.jboss.portal.wsrp.core.MissingParametersFault,java.rmi.RemoteException
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Compare method params by type name: true
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Matched parameter: org.jboss.portal.wsrp.core.ClonePortlet == org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Found best matching java method: public abstract org.jboss.portal.wsrp.core.PortletContext org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType.clonePortlet(org.jboss.portal.wsrp.core.ClonePortlet) throws org.jboss.portal.wsrp.core.InvalidUserCategoryFault,org.jboss.portal.wsrp.core.AccessDeniedFault,org.jboss.portal.wsrp.core.OperationFailedFault,org.jboss.portal.wsrp.core.InvalidHandleFault,org.jboss.portal.wsrp.core.InvalidRegistrationFault,org.jboss.portal.wsrp.core.InconsistentParametersFault,org.jboss.portal.wsrp.core.MissingParametersFault,java.rmi.RemoteException
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.server.ServiceEndpointInvokerJSE] invokeServiceEndpoint: clonePortlet
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Found java method: public abstract org.jboss.portal.wsrp.core.PortletContext org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType.clonePortlet(org.jboss.portal.wsrp.core.ClonePortlet) throws org.jboss.portal.wsrp.core.InvalidUserCategoryFault,org.jboss.portal.wsrp.core.AccessDeniedFault,org.jboss.portal.wsrp.core.OperationFailedFault,org.jboss.portal.wsrp.core.InvalidHandleFault,org.jboss.portal.wsrp.core.InvalidRegistrationFault,org.jboss.portal.wsrp.core.InconsistentParametersFault,org.jboss.portal.wsrp.core.MissingParametersFault,java.rmi.RemoteException
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Compare method params by type name: true
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Matched parameter: org.jboss.portal.wsrp.core.ClonePortlet == org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.metadata.OperationMetaData] Found best matching java method: public abstract org.jboss.portal.wsrp.core.PortletContext org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType.clonePortlet(org.jboss.portal.wsrp.core.ClonePortlet) throws org.jboss.portal.wsrp.core.InvalidUserCategoryFault,org.jboss.portal.wsrp.core.AccessDeniedFault,org.jboss.portal.wsrp.core.OperationFailedFault,org.jboss.portal.wsrp.core.InvalidHandleFault,org.jboss.portal.wsrp.core.InvalidRegistrationFault,org.jboss.portal.wsrp.core.InconsistentParametersFault,org.jboss.portal.wsrp.core.MissingParametersFault,java.rmi.RemoteException
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.binding.EndpointInvocation] getRequestPayload
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.binding.EndpointInvocation] getRequestParamValue: {urn:oasis:names:tc:wsrp:v1:types}clonePortlet
      2006-06-19 14:11:31,539 DEBUG [org.jboss.ws.soap.SOAPContentElement] getObjectValue [xmlType={urn:oasis:names:tc:wsrp:v1:types}>clonePortlet,javaType=class org.jboss.portal.wsrp.core.ClonePortlet]
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.SOAPContentElement] getXMLFragment from DOM
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.SOAPContentElement] xmlFragment: <clonePortlet xmlns='urn:oasis:names:tc:wsrp:v1:types'>
       <registrationContext xsi:nil='true'/>
       <portletContext>
       <portletHandle>samples.WeatherPortlet</portletHandle>
       </portletContext>
       <userContext>
       <userContextKey>UBER_ADMIN_KEY</userContextKey>
       </userContext>
       </clonePortlet>
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.jaxrpc.encoding.JAXBDeserializer] deserialize: [xmlName={urn:oasis:names:tc:wsrp:v1:types}clonePortlet,xmlType={urn:oasis:names:tc:wsrp:v1:types}>clonePortlet]
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.jaxrpc.encoding.JAXBDeserializer] deserialized: org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.SOAPContentElement] objectValue: org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.EndpointInvocation] transformPayloadValue: org.jboss.ws.soap.SOAPBodyElementDoc -> org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.metadata.OperationMetaData] Found java method: public abstract org.jboss.portal.wsrp.core.PortletContext org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType.clonePortlet(org.jboss.portal.wsrp.core.ClonePortlet) throws org.jboss.portal.wsrp.core.InvalidUserCategoryFault,org.jboss.portal.wsrp.core.AccessDeniedFault,org.jboss.portal.wsrp.core.OperationFailedFault,org.jboss.portal.wsrp.core.InvalidHandleFault,org.jboss.portal.wsrp.core.InvalidRegistrationFault,org.jboss.portal.wsrp.core.InconsistentParametersFault,org.jboss.portal.wsrp.core.MissingParametersFault,java.rmi.RemoteException
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.metadata.OperationMetaData] Compare method params by type name: true
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.metadata.OperationMetaData] Matched parameter: org.jboss.portal.wsrp.core.ClonePortlet == org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.metadata.OperationMetaData] Found best matching java method: public abstract org.jboss.portal.wsrp.core.PortletContext org.jboss.portal.wsrp.core.WSRP_v1_PortletManagement_PortType.clonePortlet(org.jboss.portal.wsrp.core.ClonePortlet) throws org.jboss.portal.wsrp.core.InvalidUserCategoryFault,org.jboss.portal.wsrp.core.AccessDeniedFault,org.jboss.portal.wsrp.core.OperationFailedFault,org.jboss.portal.wsrp.core.InvalidHandleFault,org.jboss.portal.wsrp.core.InvalidRegistrationFault,org.jboss.portal.wsrp.core.InconsistentParametersFault,org.jboss.portal.wsrp.core.MissingParametersFault,java.rmi.RemoteException
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.EndpointInvocation] syncEndpointInputParam: org.jboss.portal.wsrp.core.ClonePortlet -> org.jboss.portal.wsrp.core.ClonePortlet
      2006-06-19 14:11:31,555 INFO [org.jboss.portal.wsrp.producer.WSRPProducerImpl] clonePortlet() invoked
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.EndpointInvocation] setReturnValue: null
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.soap.SOAPBindingProvider] bindResponseMessage: {urn:oasis:names:tc:wsrp:v1:intf}clonePortlet
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.EndpointInvocation] getReturnValue
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.EndpointInvocation] transformPayloadValue: null -> null
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.SOAPContentElement] setObjectValue: null
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.binding.EndpointInvocation] setReturnValue: org.jboss.ws.soap.SOAPBodyElementDoc
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.SOAPContentElement] getXMLFragment from Object [xmlType={urn:oasis:names:tc:wsrp:v1:types}PortletContext,javaType=class org.jboss.portal.wsrp.core.PortletContext]
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.jaxrpc.encoding.NullValueSerializer] serialize: [xmlName={urn:oasis:names:tc:wsrp:v1:types}clonePortletResponse,xmlType={urn:oasis:names:tc:wsrp:v1:types}PortletContext]
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.SOAPContentElement] xmlFragment: <ns1:clonePortletResponse xmlns:ns1='urn:oasis:names:tc:wsrp:v1:types' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='1'/>
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.server.ServiceEndpoint] Outgoing SOAPMessage
      <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
       <env:Header/>
       <env:Body>
       <ns1:clonePortletResponse xmlns:ns1='urn:oasis:names:tc:wsrp:v1:types' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='1'/>
       </env:Body>
      </env:Envelope>
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.server.ServiceEndpoint] END handleRequest: jboss.ws:di=portal-wsrp.war,service=WSRPService,port=WSRPPortletManagementService
      2006-06-19 14:11:31,555 DEBUG [org.jboss.ws.soap.MessageContextAssociation] popMessageContext: org.jboss.ws.soap.SOAPMessageContextImpl@1ab735a
      


        • 1. Re: WSRP Producer issues with Vignette as Consumer
          claprun

          I'm going to look into it but the initial diagnostic is that vignette is trying to clone the portlet. At this point, we don't support the PortletManagement interface (and in particular, portlet cloning). I need to make sure that we handle calls to the interface properly.

          • 2. Re: WSRP Producer issues with Vignette as Consumer
            amonbeckler

            Thank you for looking into this. Do you know if cloning and/or a implementation of the PortletManagementInterface is intended to be added as a feature any time soon?
            Also I'm curious if you could shed any light on what was meant in the JBoss Portal press release, http://www.jboss.com/pdf/press/portal2_4.pdf, when it said:

            Version 2.4 supports service description and markup interfaces and implicit cloning for both producers and consumers.
            Is that not referring to what Vignette is attempting to do?
            I don't mean that in any negative manner, I'm just trying to clarify for my own understanding.

            • 3. Re: WSRP Producer issues with Vignette as Consumer

              actually it is implicit cloning on the consumer side.

              supporting any kind of cloning on the producer means also supporting registration.

              otherwise it is kind of hard to manage clones if they are not attached to any registration context, right ?

              • 4. Re: WSRP Producer issues with Vignette as Consumer
                amonbeckler

                Yes, I think that makes sense. So should Vignette recognize that JBoss Portal doesn't allow cloning, and consume the portlets differently as a result? And I say "should" meaning per the spec defintion, not "it would make sense". I've been reading the WSRP spec and haven't been able to find a clear answer to that. Maybe they're the ones I need to be harassing :)

                • 5. Re: WSRP Producer issues with Vignette as Consumer
                  claprun

                  The spec is not that clear on many points... :)
                  Vignette's error mentions implicit cloning but it's really an implicit one since it's calling clonePortlet... I will look at the spec in greater detail to see how we are supposed to handle this properly. Maybe, it's just a matter of not publishing the PortletManagement interface...

                  • 6. Re: WSRP Producer issues with Vignette as Consumer
                    ryan.block

                    I am encountering this same issue with consuming from Vignette. Do you have any additional info to provide at this time?