No XML deserialization with TomEE 9.1.0 and JAAS

[email protected]
Newsgroups gmane.comp.java.openejb.user
Message-ID <trinity-15db4cb8-67e9-459c-b370-51c967d08aa0-1689695809850__20269.8761991755$1689695905$gmane$org@3c-app-webde-bs02>
Hi,

I ported our war file from TomEE 8.0.15 to TomEE 9.1.0.

The deployment works fine with some new infos[1] where I think they are not a serious issue.

The application uses a SOAP interface and the WSDL will be retrieved.

The server is using JAAS [2][3][4]. I think at the moment I configured the TomEE system correctly.

Now I'm observing that the SOAP messages are not deserialized and an exception will be thrown.

18-Jul-2023 17:19:49.419 WARNING [http-nio-8080-exec-1] org.apache.cxf.phase.PhaseInterceptorChain.doDefaultLogging Interceptor for {http://company.com/wssession/}WSSession has thrown exc
eption, unwinding now
        org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
                at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:145)
                at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:107)
                at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        [...]
        Caused by: jakarta.xml.soap.SOAPException: Unable to create message factory for SOAP: Error while searching for service [jakarta.xml.soap.MessageFactory]
                at jakarta.xml.soap.MessageFactory.newInstance(MessageFactory.java:90)
                at org.apache.cxf.binding.soap.saaj.SAAJFactoryResolver.createMessageFactory(SAAJFactoryResolver.java:56)
                at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.getFactory(SAAJInInterceptor.java:151)
                at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:133)
                ... 36 more


In the resources.xml the WSS4J is configured where the onterceptor is invoked [5] ...

Does anybody have an idea how TomEE is not finding a SoapMessageFactory? What can I do? My assumption was that a lib is inside the library folder? [6]

Thanks,
Markus



[1]
18-Jul-2023 17:17:48.929 INFO [main] org.apache.cxf.jaxb.JAXBContextInitializer.addClass Class jakarta.xml.bind.JAXBElement does not have a default constructor which JAXB requires.
18-Jul-2023 17:17:48.983 INFO [main] org.apache.cxf.common.jaxb.JAXBUtils.createEscapeHandler Failed to create MinimumEscapeHandler

[2]
less conf/login.config
jaasContext  {
    org.apache.openejb.core.security.jaas.ServiceProviderLoginModule required;
};

[3]
less conf/server.xml
    <Engine name="Catalina" defaultHost="localhost">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.JAASRealm" appName="jaasContext"
            userClassNames="org.apache.openejb.core.security.jaas.UserPrincipal"
            roleClassNames="org.apache.openejb.core.security.jaas.GroupPrincipal">
      </Realm>

[4]
less bin/setenv.sh
export CATALINA_OPTS="$CATALINA_OPTS -Djava.security.auth.login.config=/opt/tomee/current/conf/login.config"

[5]
<resources>
    <!-- In interceptors -->
    <Service id="wss4j" class-name="org.apache.openejb.server.cxf.config.WSS4JInInterceptorFactory" factory-name="create">
        action = UsernameToken
        passwordCallbackClass = com.company.PasswordHandler
    </Service>
</resources>

[6]
/opt/tomee/apache-tomee-plus-9.1.0/lib$ find -name "*cxf*"
./cxf-rt-rs-mp-client-shade-9.1.0.jar
./openejb-cxf-transport-9.1.0.jar
./openejb-cxf-rs-9.1.0.jar
./cxf-shade-9.1.0.jar
./openejb-cxf-9.1.0.jar
/opt/tomee/apache-tomee-plus-9.1.0/lib$ find -name "*soap*"
./opensaml-soap-api-4.2.0.jar
/opt/tomee/apache-tomee-plus-9.1.0/lib$ find -name "*xml*"
./opensaml-xmlsec-impl-4.2.0.jar
./opensaml-xmlsec-api-4.2.0.jar
./xmlsec-3.0.1.jar
./xmlschema-core-2.2.5.jar
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.