0 Replies Latest reply on Jun 3, 2014 1:02 PM by matthewhuang2014

    wlfullclient.jar conflicts with JBoss 7.2.0.Final web services subsystem

    matthewhuang2014

      Recently I was assigned a task to separate all our old oracle based authentication (using OIM (Oracle Identity Manager) which in turn uses wlfullclient.jar) code into a war file. The project structure is as follows:

       

      ear

      |_____jar1

      |_____jar2

      |_____......

      |_____authentication.war

                       |_____________lib

                                                |_____________dependency1

                                                |_____________dependency2

                                                |_____________......

                                                |_____________wlfullcient.jar                          

                                                |_____________other-dependencies

       

      We use maven to construct the final ear file. The issue now is that if I exclude the wlfullclient.jar file from the authentication.war file by using provided maven scope, I will see the below error at deployment time

       

      Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: com.oracle.xmlns.idm.identity.webservice.spmlservice.SPMLService from [Module "deployment.cs-services-ear.ear.cis-myaccount-authentication.war:main" from Service Module Loader]

       

      Detailed dependency analysis discovers that our code uses the oimclient.jar dependency which contains a class oracle.iam.diagnostic.utils.SPMLBase that uses com.oracle.xmlns.idm.identity.webservice.spmlservice.SPMLService as dependency. The exception was received since this com.oracle.xmlns.idm.identity.webservice.spmlservice.SPMLService dependency is not in the war and JBoss runtime environment.

       

      Our system admin found a note (maybe from Oracle before) mentioned that wlfullclient.jar is needed. So I then changed the provided scope to compile scope for this jar and redeployed again. I received the below:

       

      • org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]

             at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA.jar:1.0.4.GA]

             at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA.jar:1.0.4.GA]

             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25]

             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]

             at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]

      Caused by: java.lang.IllegalArgumentException: JBAS015533: Web Service endpoint weblogic.wsee.wstx.wsc.v11.endpoint.RegistrationPortImpl with URL pattern /RegistrationService_V11 is already registered. Web service endpoint weblogic.wsee.wstx.wsc.v11.endpoint.RegistrationRequesterPortImpl is requesting the same URL pattern.

             at org.jboss.as.webservices.metadata.model.AbstractDeployment.addEndpoint(AbstractDeployment.java:60)

             at org.jboss.as.webservices.metadata.model.JAXWSDeployment.addEndpoint(JAXWSDeployment.java:27)

             at org.jboss.as.webservices.deployers.WSIntegrationProcessorJAXWS_POJO.processAnnotation(WSIntegrationProcessorJAXWS_POJO.java:105)

             at org.jboss.as.webservices.deployers.AbstractIntegrationProcessorJAXWS.deploy(AbstractIntegrationProcessorJAXWS.java:92)

             at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]

             ... 5 more


      If I disable the JBoss 7 web services subsystem, I can get this ear deployed, however, all our other web services will not be deployed and hence that's not an option.


      In summary, our Oracle OIM code requires OIMClient.jar as a dependency which in turn requires wlfullcient.jar as a dependency (to create the web services client for the SPMLService (Service Provisioning Markup Language)). However, this wlfullcient.jar dependency uses an endpoint URL pattern /RegistrationService_V11 that has been used by the default JBoss web services subsystem (which has to be up to support our other web services deplopyment).


      I have seen another thread talking about this @ (https://community.oracle.com/thread/2522076). I have tried following this blog (http://judahlim.blogspot.com/2011/11/same-url-pattern-error-on-glassfish-ose.html) by setting metadata-complete="true" at the end of the webh-app tag of the web.xml file


      <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

        version="2.5" metadata-complete="true">

        <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        </welcome-file-list>

      </web-app>

       

      for the authentication.war and have no luck.


      Anyone knows a way that I can make this to work?


      Any input will be highly appreciated!


      Thanks,

      Matt