Re: [wsrp-interop] Producer is up again

From
David Ward <>
Date
2003-11-26T17:29:15+00:00
ID
Thread
Re: [wsrp-interop] Producer is up again
The BEA Producer has "usesMethodGet" set on all its portlet
descriptions at the moment (even when our portal sends
methodGetSupported=false), hence our portal filters them all out when
we register them. In the interests of the interop demo, could you
provide some portlets with usesMethodGet=false?

Also, what was the decision made on template parameters with no value?
Currently these are being left in place by the BEA producer meaning
that all URLS come back with "#{wsrp-fragmentid}" on the end of them.

Thanks

David

Subbu Allamaraju wrote:

David,
  

  

During the WSDL call today, Andre and myself discussed this issue, and
he suggested that the producer could still include the complete URL in
the action so that the consumer can rewrite it if it wants to. That
seems reasonable for the producer, and it won't break consumer that
don't rewrite the markup.
  

  

I'll update the producer and let you know.
  

  

Regards,
  

  

Subbu
  

  

Subbu Allamaraju said the following on 11/26/2003 07:55 AM:
  

  David,
    

    

I see the following templates in the monitor:
    

    

<ns0:templates>
    

<ns0:defaultTemplate xsi:nil="1"/>
<ns0:blockingActionTemplate>wsrp_rewrite?wsrp-urlType=blockingAction&amp;amp;wsrp-navigationalState={wsrp-navigationalState}&amp;amp;wsrp-interactionState={wsrp-interactionState}&amp;amp;wsrp-mode={wsrp-mode}&amp;amp;wsrp-windowState={wsrp-windowState}&amp;amp;wsrp-fragmentID={wsrp-fragmentID}/wsrp_rewrite</ns0:blockingActionTemplate>
    

<ns0:renderTemplate>wsrp_rewrite?wsrp-urlType=render&amp;amp;wsrp-navigationalState={wsrp-navigationalState}&amp;amp;wsrp-mode={wsrp-mode}&amp;amp;wsrp-windowState={wsrp-windowState}&amp;amp;wsrp-fragmentID={wsrp-fragmentID}/wsrp_rewrite</ns0:renderTemplate>
    

<ns0:resourceTemplate>wsrp_rewrite?wsrp-urlType=resource&amp;amp;wsrp-url={wsrp-url}&amp;amp;wsrp-requiresRewrite={wsrp-requiresRewrite}/wsrp_rewrite</ns0:resourceTemplate>
              <ns0:secureDefaultTemplate xsi:nil="1"/>
<ns0:secureBlockingActionTemplate><![CDATA[wsrp_rewrite?wsrp-urlType=blockingAction&amp;wsrp-secureURL=true&amp;wsrp-navigationalState={wsrp-navigationalState}&amp;wsrp-interactionState={wsrp-interactionState}&amp;wsrp-mode={wsrp-mode}&amp;wsrp-windowState={wsrp-windowState}&amp;wsrp-fragmentID={wsrp-fragmentID}/wsrp_rewrite]]></ns0:secureBlockingActionTemplate>
    

<ns0:secureRenderTemplate>wsrp_rewrite?wsrp-urlType=render&amp;amp;wsrp-secureURL=true&amp;amp;wsrp-navigationalState={wsrp-navigationalState}&amp;amp;wsrp-mode={wsrp-mode}&amp;amp;wsrp-windowState={wsrp-windowState}&amp;amp;wsrp-fragmentID={wsrp-fragmentID}/wsrp_rewrite</ns0:secureRenderTemplate>
    

<ns0:secureResourceTemplate>wsrp_rewrite?wsrp-urlType=resource&amp;amp;wsrp-secureURL=true&amp;amp;wsrp-url={wsrp-url}&amp;amp;wsrp-requiresRewrite={wsrp-requiresRewrite}/wsrp_rewrite</ns0:secureResourceTemplate>
           </ns0:templates>
    

    

Firstly, I did not expect a consumer to send rewrite tokens in
templates. These templates may be valid from the spec point of view,
but can a consumer rewrite such URLs? Could you elaborate on how you
plan to rewrite these URLs in your consumer?
    

    

Secondly, to make sure that browser does not drop the query string in
the action, our producer creates hidden fields for each parameter found
in the query string. This explains the the action URL "wsrp_rewrite"
and the hidden params.
    

    

I need to look into those &amps in the hidden fields.
    

    

Regards,
    

    

Subbu
    

    

David Ward said the following on 11/26/2003 07:36 AM:
    

    

    Thanks.
      

      

Now I'm seeing the following in the methodGet portlet (not that our
Portal actually supports method get, but I thought these results from
our test client were interesting).
      

      

<form name="firstStepForm" method="get" action="wsrp_rewrite">
      

<input type="hidden" name="wsrp-urlType" value="blockingAction"/>
      

<input type="hidden" name="*amp;wsrp-interactionState*"
value="firststep"/>
      

<input type="hidden" name="*amp;wsrp-fragmentID*"
value="*{wsrp-fragmentID}/wsrp_rewrite*"/>
      

    <table>
      

        <tr valign="top">
      

            <td>First Field:</td>
      

            <td>
      

            <input type="text" name="0{actionForm.field1}"
value=""/>
      

            </td>
      

        </tr>
      

        <tr valign="top">
      

            <td>Second Field:</td>
      

            <td>
      

            <input type="text" name="0{actionForm.field2}"
value=""/>
      

            </td>
      

        </tr>
      

    </table>
      

    <br/>&nbsp;
      

    <input type="submit" value="firststep"/>
      

</form>
      

      

It seems that you are trying to 'parse' the templates we are sending
you into, expecting them to be in query string format, and you are not
recognizing "&amp;" as a separator. I thought it was only valid to
'instantiate' templates by expanding out the variables enclosed in {}.
As you can see, the templates we pass expand out into rewritable URLs,
so end with "/wsrp_rewrite".
      

      

I would have expected this as the result from the method get portlet:,
given the template we sent you
      

      

<form name="firstStepForm" method="get"
*action="wsrp_rewrite?wsrp-urlType=blockingAction&amp;wsrp-interactionState=firststep&**amp;wsrp-fragmentID=**/wsrp_rewrite">*
      

    <table>
      

        <tr valign="top">
      

            <td>First Field:</td>
      

            <td>
      

            <input type="text" name="0{actionForm.field1}"
value=""/>
      

            </td>
      

        </tr>
      

        <tr valign="top">
      

            <td>Second Field:</td>
      

            <td>
      

            <input type="text" name="0{actionForm.field2}"
value=""/>
      

            </td>
      

        </tr>
      

    </table>
      

    <br/>&nbsp;
      

    <input type="submit" value="firststep"/>
      

</form>
      

      

Regards
      

      

David
      

      

Subbu Allamaraju wrote:
      

      

      Hi David,
        

        

Uploaded the fix just now. I was able to register our consumer with
your producer last night. I'm going to try setup a page now.
        

        

Regards,
        

        

Subbu
        

        

David Ward said the following on 11/26/2003 05:10 AM:
        

        

        Hi Subbu
          

          

It seems you have added a registration port now and your portlets won't
render without a registration handle. However, when I try to register,
I see the following request and response. It seems your producer
requires some sort of authentication. Note also that the Content-Type
response header is still wrong!
          

          

POST /producer/producer HTTP/1.1
          

Host: ukp16267.uk.oracle.com:5555
          

Connection: close, TE
          

TE: trailers, deflate, gzip, compress
          

User-Agent: RPT-HTTPClient/0.3-3
          

SOAPAction: "urn:oasis:names:tc:wsrp:v1:register"
          

Accept-Encoding: gzip, x-gzip, compress, x-compress
          

Content-type: text/xml; charset="utf-8"
          

Content-length: 1010
          

          

<?xml version="1.0" encoding="UTF-8"?>
          

   <env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="urn:oasis:names:tc:wsrp:v1:types">
          

      <env:Body>
          

         <ns0:register>
          

            <ns0:consumerName>UKP16267</ns0:consumerName>
          

           
<ns0:consumerAgent>OraclePortal.9.5</ns0:consumerAgent>
          

           
<ns0:methodGetSupported>false</ns0:methodGetSupported>
          

           
<ns0:consumerModes>wsrp:view</ns0:consumerModes>
          

           
<ns0:consumerModes>wsrp:edit</ns0:consumerModes>
          

           
<ns0:consumerModes>wsrp:help</ns0:consumerModes>
          

           
<ns0:consumerModes>wsrp:preview</ns0:consumerModes>
          

           
<ns0:consumerModes>urn:javax:portlet:mode:custom:edit_defaults</ns0:consumerModes>
          

           
<ns0:consumerWindowStates>wsrp:normal</ns0:consumerWindowStates>
          

           
<ns0:consumerWindowStates>wsrp:minimized</ns0:consumerWindowStates>
          

           
<ns0:consumerWindowStates>wsrp:maximized</ns0:consumerWindowStates>
          

           
<ns0:consumerWindowStates>wsrp:solo</ns0:consumerWindowStates>
          

         </ns0:register>
          

      </env:Body>
          

   </env:Envelope>
          

          

HTTP/1.1 200 OK
          

Date: Wed, 26 Nov 2003 12:04:45 GMT
          

Content-Length: 2854
          

Content-Type: text/xml; UTF-8
          

Connection: close
          

Server: WebLogic Server 8.1 SP2 Mon Nov 17 22:57:23 PST 2003 311144
WebLogic Server 8.1 SP2 Mon Nov 17 22:57:23 PST 2003 311144 WebLogic
Server 8.1 SP2 Mon Nov 17 22:57:23 PST 2003 311144
          

Via: 1.1 inet-nc01 (NetCache NetApp/5.3.1R3)
          

          

<?xml version="1.0" encoding="UTF-8"?>
          

   <soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
          

      <soapenv:Body>
          

         <soapenv:Fault
xmlns:urn="urn:oasis:names:tc:wsrp:v1:types">
          

            <faultcode>urn:OperationFailed</faultcode>
          

            <faultstring>[EJB:010160]Security Violation: User:
'&lt;anonymous>' has insufficient permission to access EJB:
type=&lt;ejb>, application=producerApp, module=netuix.jar,
ejb=ConsumerRegistrationService, method=register,
methodInterface=Local,
signature={java.lang.String,java.lang.String,java.lang.String,java.util.Map}.</faultstring>
          

            <detail>
          

              
<detail>com.bea.wsrp.faults.OperationFailedException:
[EJB:010160]Security Violation: User: '&lt;anonymous>' has
insufficient permission to access EJB: type=&lt;ejb>,
application=producerApp, module=netuix.jar,
ejb=ConsumerRegistrationService, method=register,
methodInterface=Local,
signature={java.lang.String,java.lang.String,java.lang.String,java.util.Map}.   
at
com.bea.wsrp.producer.adapter.registration.PortalConsumerRegistrationServiceAdapter.register(PortalConsumerRegistrationServiceAdapter.java:59)   
at
com.bea.wsrp.producer.handlers.registration.RegistrationServiceHandler.doRegister(RegistrationServiceHandler.java:185)   
at
com.bea.wsrp.producer.handlers.registration.RegistrationServiceHandler.doService(RegistrationServiceHandler.java:119)   
at
com.bea.wsrp.producer.WsrpServer.invokeHandler(WsrpServer.java:335)   
at com.bea.wsrp.producer.WsrpServer.doService(WsrpServer.java:297)   
at
com.bea.wsrp.producer.WsrpServer.processServiceRequest(WsrpServer.java:210)   
at com.bea.wsrp.producer.WsrpServer.service(WsrpServer.java:169)    at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)    at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)   
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)   
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)   
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)   
at
com.bea.wsrp.producer.adapter.pageflow.WsrpPageflowFilter.doFilter(WsrpPageflowFilter.java:73)   
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)   
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6356)   
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)   
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)   
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)   
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)   
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)    at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)</detail>
          

            </detail>
          

         </soapenv:Fault>
          

      </soapenv:Body>
          

   </soapenv:Envelope>
          

          

Regards
          

          

Dave
          

          

Subbu Allamaraju wrote:
          

          

          The producer is up now.
            

            

The producer WSDL is at:
            

            

http://wsrp.avitek.com:7001/producer/producer?WSDL
            

            

The consumer is at:
            

            

http://wsrp.avitel.com:7001/consumer/portal.portal (please note the
change in port number).
            

            

There are some known issues with the portlets that we obtained from a
partner, and those will be fixed by tomorrow.
            

            

Regards,
            

            

Subbu
            

            

            

To unsubscribe from this mailing list (and be removed from the roster
of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php.
            

            

          
          

-- 

------------------------------------------------------------------------
          

          

*David Ward*
          

Principal Software Engineer
          

Portlet Technologies
          

Oracle Portal
          

    Oracle European Development Centre
          

520 Oracle Parkway
          

Thames Valley Park
          

Reading
          

Berkshire RG6 1RA
          

UK    *Email:*     
<mailto:>
          

*Tel:*     +44 118 924 5079
          

*Fax:*     +44 118 924 5005
          

          

          

        
        

        

        

To unsubscribe from this mailing list (and be removed from the roster
of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php.
        

        

      
      

-- 

------------------------------------------------------------------------
      

      

*David Ward*
      

Principal Software Engineer
      

Portlet Technologies
      

Oracle Portal
      

    Oracle European Development Centre
      

520 Oracle Parkway
      

Thames Valley Park
      

Reading
      

Berkshire RG6 1RA
      

UK    *Email:*     
<mailto:>
      

*Tel:*     +44 118 924 5079
      

*Fax:*     +44 118 924 5005
      

      

      

    
    

    

    

To unsubscribe from this mailing list (and be removed from the roster
of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php.
    

    

  
  

  

  

To unsubscribe from this mailing list (and be removed from the roster
of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php.
  

  

-- 

  
    

      David Ward

Principal Software Engineer

Portlet Technologies

Oracle Portal

      
      Oracle European Development Centre

520 Oracle Parkway

Thames Valley Park

Reading

Berkshire RG6 1RA

UK 
      
      
        
          

            Email:
            
          

          

            Tel:
            +44 118 924 5079
          

          

            Fax:
            +44 118 924 5005