Date of First Response: 2008-09-07 04:05:25 project_key: SOA Currently, there are two issues of deploying opensso.war into soa-p. 1). When you deploy the exploded opensso.war into JBossAS on the fly (using ant unzip task), you will get "java.lang.ClassNotFoundException: com.sun.identity.wss.sts.STSContextListener". The cause for this is: The deployer is seeing the web.xml files before the classes have been copied across. Because the opensso.war is about 65M, and it takes time to unzip and copy it to the JBossAS through Ant script. And the reason for us to deploy exploded opensso.war instead of war file directly is that: You'll lose the install when you reboot or redeploy because jboss unpacks into temporary directories. 2) Once you have installed the opensso.war into soa-p, and run quick starts example with 'webservice', such as 'webservice_producer', you will get "Cannot create SOAPFault message for: javax.xml.soap.SOAPException: java.lang.IllegalStateException: Failed to load javax.xml.soap.SOAPFactory: com.sun.xml.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl". This is because in the opensso servlet initializing, it sets system properties for the SOAP service configuration (that uses Metro one). which They should not be doing this as it overrides the normal META-INF/services behaviour.
For the 1st issue, we have a workaround is that: when we deploy the exploded opensso.war, make sure we stop the JBoss Server. For the 2nd issue, need to find a way to resolve it, Kevin mentioned we can use aop to accomplish this at least.
Yes, this makes sense. But create a separate issue for OpenSSO in Tomcat, link it to this one (as related), move this one to 4.3 CP1 and leave the new one as a blocker against CR1.
Link: Added: This issue related SOA-758
Update the priority and fix version.
Thanks Kevin for providing this work around. As Kevin said in the email, following three issues has been addressed by the opensso.aop.zip file. There are three issues fixed by this - location of default directory is now under data/opensso - disable setting of WS properties - force registration of shutdown hook before shutdown called
Attachment: Added: opensso.aop.zip
It has been committed by rev 2419 of soa-p repo. It should be distributed under soa-p/jboss-as/samples/quickstarts/opensso/opensso-ear
Link: Added: This issue is a dependency of SOA-1068
What solution was implemented for this JIRA? The user still has to install/use Tomcat and deploy OpenSSO to it, yes?
We have provide a workaround in the 4.3 CP01, which is installing the opensso as ear in the soa-p. So, NO, users don't have to use the Tomcat and deploy the opensso.
See the attached server.log - opensso.ear builds cleanly, but class not found exceptions are raised when it's installed: 2009-02-23 14:59:22,346 INFO [org.jboss.deployment.EARDeployer] Init J2EE application: file:/jboss/local/43_CP01_CR2/jboss-soa-p.4.3.0/jboss-as/server/production/deploy/opensso-1.0.ear 2009-02-23 14:59:27,117 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.iplanet.services.comm.server.PLLRequestServlet 2009-02-23 14:59:27,122 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.setup.AMSetupServlet 2009-02-23 14:59:27,127 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.cli.WebCLI 2009-02-23 14:59:27,141 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.iplanet.services.cdc.CDCServlet 2009-02-23 14:59:27,151 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.setup.SetSetupProgress 2009-02-23 14:59:27,162 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.password.ui.PWResetServlet 2009-02-23 14:59:27,170 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.iplanet.dpro.session.service.GetHttpSession 2009-02-23 14:59:27,173 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.authentication.UI.LoginLogoutMapping 2009-02-23 14:59:27,177 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.idsvcs.rest.IdentityServicesHandler 2009-02-23 14:59:27,195 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.wss.sts.SecurityTokenService 2009-02-23 14:59:27,196 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.policy.util.Gateway 2009-02-23 14:59:27,198 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.idsvcs.IdentityServicesServlet 2009-02-23 14:59:27,199 WARN [org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE] Cannot load servlet class: com.sun.identity.authentication.UI.LoginServlet 2009-02-23 14:59:27,230 INFO [org.jboss.web.tomcat.service.TomcatDeployer] deploy, ctxPath=/opensso, warUrl=.../tmp/deploy/tmp21448opensso-1.0.ear-contents/opensso-exp.war/ 2009-02-23 14:59:27,486 ERROR [org.apache.catalina.core.ContainerBase] Error configuring application listener of class com.sun.identity.wss.sts.STSContextListener java.lang.ClassNotFoundException: com.sun.identity.wss.sts.STSContextListener
Server log file
Attachment: Added: server.log.gz
We will also have to update the readme.txt fle - steps 1-6 refer to installing opensso with Tomcat: 1. Download the Tomcat version 6 or greater from the apache site. For example: http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.tar.gz 2. Untar it to a directory for example: /opt/tomcat6.0.14 3. Open up tomcat /opt/tomcat6.0.14/bin/catalina.sh (catalina.bat for windows) Add max size to the JAVA_OPTS. Before Editing: JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" After Editing: JAVA_OPTS="$JAVA_OPTS "-Xmx1G" "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" 4. Copy the opensso.war to /opt/tomcat6.0.14/webapps/ 5. If you want to deploy the soa-p and tomcat in the same machine, for simplicity, you can update tomcat port in $tomcat/conf/server.xml as below: <Connector port="8090" protocol="HTTP/1.1".... <Connector port="8099" protocol="AJP/1.3" redirectPort="8443" /> 6. Start tomcat by running /opt/tomcat6.0.14/bin/startup.sh (startup.bat for windows) 7. Open http://tomcatHost.example.com:8090/opensso in a browser. 8. Click on "Create Default Configuration". This causes OpenSSO to configure itself. 9. Enter 'adminpass' for the "Default User[amAdmin]" and 'ldappass' for "Default Agent [amldapuser]" 10. Visit http://tomcatHost.example.com:8090/opensso again. Log in using the proper credentials. User Name is amAdmin and Password is the password you chose to go with amAdmin. 1. Download the Tomcat version 6 or greater from the apache site. For example: http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.tar.gz 2. Untar it to a directory for example: /opt/tomcat6.0.14 3. Open up tomcat /opt/tomcat6.0.14/bin/catalina.sh (catalina.bat for windows) Add max size to the JAVA_OPTS. Before Editing: JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" After Editing: JAVA_OPTS="$JAVA_OPTS "-Xmx1G" "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" 4. Copy the opensso.war to /opt/tomcat6.0.14/webapps/ 5. If you want to deploy the soa-p and tomcat in the same machine, for simplicity, you can update tomcat port in $tomcat/conf/server.xml as below: <Connector port="8090" protocol="HTTP/1.1".... <Connector port="8099" protocol="AJP/1.3" redirectPort="8443" /> 6. Start tomcat by running /opt/tomcat6.0.14/bin/startup.sh (startup.bat for windows) 7. Open http://tomcatHost.example.com:8090/opensso in a browser. 8. Click on "Create Default Configuration". This causes OpenSSO to configure itself. 9. Enter 'adminpass' for the "Default User[amAdmin]" and 'ldappass' for "Default Agent [amldapuser]" 10. Visit http://tomcatHost.example.com:8090/opensso again. Log in using the proper credentials. User Name is amAdmin and Password is the password you chose to go with amAdmin.
Attachment: Removed: server.log.gz
Server log Note - the steps I followed were to: 1) deploy the .ear 2) start the server (in this case, the embedded server, production profile)
Attachment: Added: server.log
Hi Len, For the readme.txt file update, do you mean add the 'steps 1-6 refer to installing opensso with Tomcat: ' sentence in the file?
Add this link for tracking in the opensso community. https://opensso.dev.java.net/issues/show_bug.cgi?id=4321
Fix has been committed at rev 25& 26. Also add the following content in the readme.txt file. " * Note: the opensso-1.0.ear is meant for demonstration purpose only, such as running this quickstart, but we do not recommend the workaround for production. " Thanks Len for point this out.
the problem still on 4.3.0.CR2
Yes, Len reported it as 4.3.0.CR2, the fix should be included in the next build.
Release Note: SOA-731 The opensso quickstart has had an EAR build added for demonstration purposes. It is not supported or recommended for deployment in a production environment.
Verified in SOA 4.3 CP01 CR4