12 Replies Latest reply on Jun 14, 2008 12:36 AM by Jason Porter

    wsrp locale problem

    Jason Porter Master

      I've been following the posts about consumer agent issues with SAP (specifically http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4137793#4137793) and downloaded, and built portal 2.7. Everything seems to be running fine with the registration and whatnot when I relax the consumer agent validation (cookies seem to be working great too). Now I have a problem when I try to view the portlet. Here's the stack trace:

      07:35:46,064 ERROR [SOAPFaultHelperJAXRPC] SOAP request exception
      java.lang.IllegalArgumentException
       at org.jboss.portal.wsrp.WSRPUtils.getLocale(WSRPUtils.java:434)
       at org.jboss.portal.wsrp.UserContextConverter$WSRPMappedUserContext.<init>(UserContextConverter.java:159)
       at org.jboss.portal.wsrp.UserContextConverter.createPortalUserContextFrom(UserContextConverter.java:60)
       at org.jboss.portal.wsrp.producer.RequestProcessor.createUserContext(RequestProcessor.java:395)
       at org.jboss.portal.wsrp.producer.RequestProcessor.prepareInvocation(RequestProcessor.java:147)
       at org.jboss.portal.wsrp.producer.RenderRequestProcessor.<init>(RenderRequestProcessor.java:68)
       at org.jboss.portal.wsrp.producer.MarkupHandler.getMarkup(MarkupHandler.java:88)
       at org.jboss.portal.wsrp.producer.WSRPProducerImpl.getMarkup(WSRPProducerImpl.java:181)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.java:287)
       at $Proxy419.getMarkup(Unknown Source)
       at org.jboss.portal.wsrp.endpoints.MarkupEndpoint.getMarkup(MarkupEndpoint.java:61)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.wsf.container.jboss42.DefaultInvocationHandler.invoke(DefaultInvocationHandler.java:102)
       at org.jboss.wsf.container.jboss42.DefaultInvocationHandlerJAXRPC.invoke(DefaultInvocationHandlerJAXRPC.java:57)
       at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220)
       at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408)
       at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272)
       at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189)
       at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122)
       at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.portal.wsrp.servlet.TransactionFilter.doFilter(TransactionFilter.java:78)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.portal.wsrp.servlet.ServletAccessFilter.doFilter(ServletAccessFilter.java:54)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
       at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
       at java.lang.Thread.run(Thread.java:613)
      Caused by: org.jboss.portal.common.util.FormatConversionException: en_US is not a valid compound language : accepted format is xx-YY where xx is a valid ISO language code and YY is a valid country code. See java.util.Locale javadoc for more info.
       at org.jboss.portal.common.i18n.RFC3066LanguageTagLocaleFormat.internalGetLocale(RFC3066LanguageTagLocaleFormat.java:74)
       at org.jboss.portal.common.i18n.AbstractLocaleFormat.getLocale(AbstractLocaleFormat.java:47)
       at org.jboss.portal.common.i18n.CachingLocaleFormat.getLocale(CachingLocaleFormat.java:74)
       at org.jboss.portal.wsrp.WSRPUtils.getLocale(WSRPUtils.java:429)
       ... 59 more


      Here's the SOAP message:
      <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:tns='urn:oasis:names:tc:wsrp:v1:wsdl' xmlns:wn0='http://schemas.xmlsoap.org/soap/encoding/' xmlns:wn1='http://www.w3.org/2001/XMLSchema' xmlns:wn2='http://www.w3.org/2000/10/XMLSchema' xmlns:wn3='http://www.w3.org/1999/XMLSchema' xmlns:wn4='urn:oasis:names:tc:wsrp:v1:wsdl' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <SOAP-ENV:Body>
       <prt0:getMarkup xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>
       <prt0:registrationContext>
       <prt0:registrationHandle xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>2</prt0:registrationHandle>
       </prt0:registrationContext>
       <prt0:portletContext>
       <prt0:portletHandle xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>/nomination_poc.nomination_poc_create</prt0:portletHandle>
       </prt0:portletContext>
       <prt0:runtimeContext>
       <prt0:userAuthentication xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>wsrp:certificate</prt0:userAuthentication>
       <prt0:portletInstanceKey xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>pcd:portal_content/p42_poc/nomination_poc.nomination_poc_create.1</prt0:portletInstanceKey>
       </prt0:runtimeContext>
       <prt0:userContext>
       <prt0:userContextKey xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>USER.CORP_LDAP.oc60872</prt0:userContextKey>
       </prt0:userContext>
       <prt0:markupParams>
       <prt0:secureClientCommunication xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>false</prt0:secureClientCommunication>
       <prt0:locales xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>en_US</prt0:locales>
       <prt0:locales xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>en-US</prt0:locales>
       <prt0:mimeTypes xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>text/html</prt0:mimeTypes>
       <prt0:mode xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>wsrp:view</prt0:mode>
       <prt0:windowState xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>wsrp:normal</prt0:windowState>
       <prt0:clientData xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>
       <prt0:userAgent xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2)</prt0:userAgent>
       </prt0:clientData>
       <prt0:markupCharacterSets xmlns:prt0='urn:oasis:names:tc:wsrp:v1:types'>UTF-8</prt0:markupCharacterSets>
       </prt0:markupParams>
       </prt0:getMarkup>
       </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>


      I've checked the spec and XSD for the WSDL, everything looks like it's good and in compliance, but JBoss is dying on the en_US, but doesn't seem to pickup the en-US string. Which one is in the wrong here? Is the the consumer (SAP) or the producer (JBoss)?