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