Re: [wsrp-interop] Producer is up again

From
David Ward <>
Date
2003-11-26T18:56:30+00:00
ID
Thread
Re: [wsrp-interop] Producer is up again
Cheers

FYI I have just applied a patch to portalstandards.oracle.com that
corrects a problem with its filtering out of methodGet portlets. In
your producer's case, the filtering resulted in a producer with no
portlets, which raised a few problems in our code.

You should now find that you can register the BEA producer on
portalstandards.oracle.com (although the end result at the moment will
be no portlets available to add to the page!).

Regards

David

Subbu Allamaraju wrote:

Okay. But
I'm going to leave other tokens unreplaced till Monday.
  

  

Subbu
  

  

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

  This would certainly help.
    

    

Subbu Allamaraju wrote:
    

    

    Is this just for fragmentId? If so, I can
do that in my next update.
      

      

Subbu
      

      

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

      

      

        

Subbu Allamaraju wrote:
        

        

        

David,
          

          

          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?
            

          
          

          

          

This is a bit tricky, since the producer does not really care about
usesMethodGet. We don't require portlet JSP developers to specify this
at all.
          

          

I'll make it return false temporarily.
          

          

          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.
            

          
          

          

          

This issue is still open for the TC to consider. 
        

        

Again, if we want something demoable, can you make your producer
instantiate /all/ {wsrp} parameters in its template? Those that don't
have values such as fragment id could just be replaced with the empty
string.
        

        

Thanks
        

        

David
        

        

        

          

Regards,
          

          

Subbu
          

          

          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:*     
<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.
      

      

    
    

-- 

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

    

*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:
            
          

          

            Tel:
            +44 118 924 5079
          

          

            Fax:
            +44 118 924 5005