-
1. Re: JBoss Portal WSRP <-> Sharepoint interoperability
claprun Jan 14, 2009 7:18 AM (in response to uiterlix)Is there a way that you can post the SOAP messages relevant to the particular interaction?
Any reason you are using 2.6.7 instead of 2.7? -
2. Re: JBoss Portal WSRP <-> Sharepoint interoperability
uiterlix Jan 14, 2009 9:39 AM (in response to uiterlix)There's no specific reason for using 2.6.7, so I could give 2.7 a try.
I can't post the SOAP messages since the action I'm trying to perform doesn't result in a SOAP call from sharepoint to jboss portal.
Let me elaborate:
Sharepoint renders my portlet correctly. On this portlet there's a button that should result in a processAction call (which actually works when running this portlet over wsrp in another jboss portal). The HTML rendered in sharepoint for this button looks as follows:
The strange this is when looking at the same HTML fragment for the same portlet but then installed as a WSRP portlet in a JBoss portal, the form action url looks different since jboss actually rewrites the URL to something meaningful to itself, but sharepoint doesn't seem to since this URL is exactly the same as the actionurl as obtained from the renderresponse.
Any ideas? It seems like a sharepoint problem, but I can't find any resolution on the internet, although it seems a pretty common integration scenario to me. -
3. Re: JBoss Portal WSRP <-> Sharepoint interoperability
uiterlix Jan 14, 2009 9:42 AM (in response to uiterlix)I seems I can't edit my previous message, so here's the html form fragment I mention there:
<Form method="post" action="wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState=JBPNS_" id="componentform" Target="_self" >
-
4. Re: JBoss Portal WSRP <-> Sharepoint interoperability
claprun Jan 14, 2009 10:04 AM (in response to uiterlix)I'd like to see the SOAP interaction leading to the page that is causing you problems. Specifically I'm looking for any issues in the getMarkup call which would result in Sharepoint not rewriting the URL.
-
5. Re: JBoss Portal WSRP <-> Sharepoint interoperability
uiterlix Jan 14, 2009 12:24 PM (in response to uiterlix)I must have been running my application with old settings during my last sharepoint test, since I notice it actually rewriting the url now. I think it's because of the "/wsrp_rewrite" I added to the form action url later.
Although sharepoint rewrites the URL now, pressing the submit button in the portlet results in the portlet's render() method being called instead of processAction().
Here's the getMarkup request and response
Request:POST /portal-wsrp/MarkupService HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3053) Content-Type: text/xml; charset=utf-8 SOAPAction: "urn:oasis:names:tc:wsrp:v1:getMarkup" Host: 192.168.55.100:8081 Cookie: JSESSIONID=A7A0DCA4FAE2C685A68CB767D94A817C Content-Length: 4211 Expect: 100-continue <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <getMarkup xmlns="urn:oasis:names:tc:wsrp:v1:types"> <registrationContext> <registrationHandle>11</registrationHandle> </registrationContext> <portletContext> <portletHandle>/Application.InboxPortlet</portletHandle> </portletContext> <runtimeContext> <userAuthentication>wsrp:password</userAuthentication> <templates> <defaultTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</defaultTemplate> <blockingActionTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</blockingActionTemplate> <renderTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</renderTemplate> <resourceTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</resourceTemplate> <secureDefaultTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</secureDefaultTemplate> <secureBlockingActionTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</secureBlockingActionTemplate> <secureRenderTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</secureRenderTemplate> <secureResourceTemplate>wsrp_rewrite?wsrp-urlType={wsrp-urlType}&wsrp-url={wsrp-url}&wsrp-requiresRewrite={wsrp-requiresRewrite}&wsrp-navigationalState={wsrp-navigationalState}&wsrp-interactionState={wsrp-interactionState}&wsrp-mode={wsrp-mode}&wsrp-windowState={wsrp-windowState}&wsrp-fragmentID={wsrp-fragmentID}&wsrp-secureURL={wsrp-secureURL}/wsrp_rewrite</secureResourceTemplate> </templates> </runtimeContext> <userContext> <userContextKey>XANDER-685C0BE7\Administrator</userContextKey> </userContext> <markupParams> <secureClientCommunication>false</secureClientCommunication> <locales>en-us</locales> <mimeTypes>text/html</mimeTypes> <mimeTypes>text/xml</mimeTypes> <mode>wsrp:view</mode> <windowState>wsrp:normal</windowState> </markupParams> </getMarkup> </soap:Body> </soap:Envelope>
ResponseHTTP/1.1 100 Continue HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: Servlet 2.4; JBoss-4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)/JBossWeb-2.0 Content-Type: text/xml;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 14 Jan 2009 17:05:49 GMT <?xml version="1.0"?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <ns1:getMarkupResponse xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ns1:markupContext> <ns1:useCachedMarkup xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types">false </ns1:useCachedMarkup> <ns1:mimeType xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types">text/html </ns1:mimeType> <ns1:markupString xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types"> <!DOCTYPE div PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <div xmlns="http://www.w3.org/1999/xhtml" id="bi-container" class="bi"><div id="bi-main"><div class="content"><div class="content" id="bi-main-content"> <form method="POST" action="wsrp_rewrite?wsrp-urlType=blockingAction&amp;wsrp-interactionState=JBPNS_/wsrp_rewrite" id="componentform"><div> <table class="master" cellspacing="0"><thead><tr><th class="first"><input onclick="allChecked(this);" value="select_all" name="cmd" type="checkbox" /> </th><th>Onderwerp</th><th>Bericht</th><th>Type</th><th class="last">Datum</th></tr></thead><tbody> <tr class="even"><td><input value="22" name="delete-record" type="checkbox" onclick=" 	 				 unCheckMasterCheckBox(this); 	 				" /></td><td><a href="http://intern.appserver.nl:81/Application/information_request/requeststab/inboxview?cmd=edit& amp;record-id=22">Nieuws op de website</a></td><td>Nieuw verzoek</td><td>Vraag</td><td class="last">17-09-2008</td> </tr></tbody></table><input onclick="handleSingleSubmit(this);" value="Verwijderen" name="remove" type="submit" class="delete-control btn" /> <input onclick="handleSingleSubmit(this);" value="Markeer als gelezen" name="mark-as-read" type="submit" class="mark-as-read-control btn" /> <pre>Action url: wsrp_rewrite?wsrp-urlType=blockingAction&amp;wsrp-interactionState=JBPNS_</pre></div></form></div> </div></div></div> </ns1:markupString> <ns1:locale xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types">en </ns1:locale> <ns1:requiresUrlRewriting xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types">true </ns1:requiresUrlRewriting> <ns1:preferredTitle xmlns:ns1="urn:oasis:names:tc:wsrp:v1:types">inbox portlet </ns1:preferredTitle> </ns1:markupContext> </ns1:getMarkupResponse> </env:Body> </env:Envelope>
-
6. Re: JBoss Portal WSRP <-> Sharepoint interoperability
uiterlix Jan 14, 2009 12:27 PM (in response to uiterlix)I forgot to mention in my previous post:
Sharepoint rewrites the action url now to:?WSRPProducer=Application WSRP producer&WSRPPortletHandle=/Application.InboxPortlet&WSRPPortletState=&WSRPRegistrationHandle=11&WSRPRegistrationState=&WSRPMode=wsrp:view&WSRPWindowState=wsrp:normal&WSRPQualifiedName=g_9bcea8ab_df1d_4ced_b0f1_453faf9f2c10&WSRPIsAnonymous=False&WSRPAction=wsrp%5Frewrite%3Fwsrp%2DurlType%3DblockingAction%26amp%3Bwsrp%2DinteractionState%3DJBPNS%5F%2Fwsrp%5Frewrite
-
7. Re: JBoss Portal WSRP <-> Sharepoint interoperability
uiterlix Jan 19, 2009 2:16 PM (in response to uiterlix)We finally found the error.
If you look at the following URL, you'll find it contains a small mistake:?WSRPProducer=Application WSRP producer&WSRPPortletHandle=/Application.InboxPortlet&WSRPPortletState=&WSRPRegistrationHandle=11&WSRPRegistrationState=&WSRPMode=wsrp:view&WSRPWindowState=wsrp:normal&WSRPQualifiedName=g_9bcea8ab_df1d_4ced_b0f1_453faf9f2c10&WSRPIsAnonymous=False&WSRPAction=wsrp%5Frewrite%3Fwsrp%2DurlType%3DblockingAction%26amp%3Bwsrp%2DinteractionState%3DJBPNS% 5F%2Fwsrp%5Frewrite
It contains "%26amp%3B" which is an encoded "&". This happend because when you obtain the render/action url from the PortletResponse, JBoss returns:wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState=JBPNS_
I don't quite understand why the url obtained from the PortletResponse contains an URL that has already escaped the "&", but undoing this escaping by replacing the "&" with just "&" solves the problem.