1 2 Previous Next 16 Replies Latest reply on Mar 22, 2017 7:48 AM by tomjenkinson

    Atomic Transactions in standalone-full.xml

    manuel_uberti

      Hi,

       

      is it possible to add whatever is needed to enable Atomic Transactions in standalone-full.xml?

       

      As I understood from https://github.com/jboss-developer/jboss-eap-quickstarts/tree/7.1.x-develop/wsat-simple, I need to use WildFly with standalone-xts.xml. However, company requirement here is to use standalone-full.xml.

       

      I tried a diff on both files, and found only these 2 differences:

       

      <extension module="org.jboss.as.xts"/>
      

       

      <subsystem xmlns="urn:jboss:domain:xts:2.0">
                  <host name="default-host"/>
                  <xts-environment url="http://${jboss.bind.address:127.0.0.1}:8080/ws-c11/ActivationService"/>
                  <default-context-propagation enabled="true"/>
      </subsystem>
      

       

      So copied them both in my standalone-full.xml. I added org.jboss.narayana.xts to my pom.xml and then configured the client of the web services I need to use like this:

       

      public static void enableWsAtomicTransaction(final BindingProvider bindingProvider) {
          bindingProvider.getBinding().getHandlerChain().add(new JaxWSHeaderContextProcessor());    
      }
      

       

      And added the handler in handler-chain.xml:

       

      <handler>
            <handler-name>JaxWSHeaderContextProcessor</handler-name>
            <handler-class>com.arjuna.mw.wst11.service.JaxWSHeaderContextProcessor</handler-class>
      </handler>
      

       

      When trying to deploy my EAR I get this exception:

       

      2016-09-06 12:29:44,300 WARN  [org.jboss.modules] (MSC service thread 1-6) Failed to define class com.arjuna.mw.wst11.service.JaxWSHeaderContextProcessor in Module "deployment.mdw-ear-0.5.6-SNAPSHOT.ear:main" from Service Module Loader: java.lang.IllegalAccessError: Failed to link com/arjuna/mw/wst11/service/JaxWSHeaderContextProcessor (Module "deployment.mdw-ear-0.5.6-SNAPSHOT.ear:main" from Service Module Loader): class com.arjuna.mw.wst11.service.JaxWSHeaderContextProcessor cannot access its superclass com.arjuna.mw.wst11.service.JaxBaseHeaderContextProcessor
      
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446)
          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274)
          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78)
          at org.jboss.modules.Module.loadModuleClass(Module.java:605)
          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
          at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Class.java:348)
          at org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:21)
          at org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:14)
          at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:84)
          at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:76)
          at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
          at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
          at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at java.lang.Thread.run(Thread.java:745)
      
        • 1. Re: Atomic Transactions in standalone-full.xml
          gytis

          Manuel,

           

          standalone-xts.xml is standalone-full.xml with XTS added on top of it. So you can either copy the missing bits or rename the file.

           

          Seems that you're missing a manifest dependency on org.jboss.xts, thus the handler cannot access its parent class.

          • 2. Re: Atomic Transactions in standalone-full.xml
            manuel_uberti

            Hi gytis, thanks for the prompt answer.

             

            Do you mean I just need to add an entry like this to my pom.xml?

             

            <build>
                    <pluginManagement>
                        <plugins>
                            <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-war-plugin</artifactId>
                                <configuration>
                                    <archive>
                                        <manifestEntries>
                                            <Dependencies>org.jboss.xts</Dependencies>
                                        </manifestEntries>
                                    </archive>
                                </configuration>
                            </plugin>
                        </plugins>
                    </pluginManagement>
            </build>
            

             

            We are using a BOM structure, so I added that to the relevant pom.xml where the class is actually used, but I am still getting the same error.

            • 3. Re: Atomic Transactions in standalone-full.xml
              gytis

              Yes that should do it. Didn't it work?

              • 4. Re: Atomic Transactions in standalone-full.xml
                manuel_uberti

                No, same error.

                 

                If you need an example of our pom structure, this is it: narayana-test/MDW at master · manuel-uberti/narayana-test · GitHub

                • 5. Re: Atomic Transactions in standalone-full.xml
                  gytis

                  Which version of the application server do you use?

                  • 6. Re: Atomic Transactions in standalone-full.xml
                    manuel_uberti

                    10.0.0.Final

                    • 7. Re: Atomic Transactions in standalone-full.xml
                      gytis

                      If I understand correctly you're using WS-AT directly (without bridging with JTA). In that case take a look at the raw api quickstart: quickstart/XTS/raw-xts-api-demo at master · jbosstm/quickstart · GitHub. I recommend checking out 5.3.3.Final tag (it will work on WildFly 10).

                      Also, if you're running on mac you'll need to add the following to standalone.config:

                      if $darwin ; then

                          # Add the apple gui packages for the gui client

                          JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=com.apple.laf,com.apple.laf.resources"

                      fi

                       

                      However, if you're using bridging with JTA you don't need to set up handlers. In this case take a look at these quickstarts: quickstart/XTS/wsat-jta-multi_service at master · jbosstm/quickstart · GitHub and quickstart/XTS/wsat-jta-multi_hop at master · jbosstm/quickstart · GitHub . Their usage instructions are not exact on 5.3.3.Final, but I've updated them on master branch.

                      • 8. Re: Atomic Transactions in standalone-full.xml
                        manuel_uberti

                        Thank you gytis. I'll follow the first quickstart you linked and try with 5.3.3.Final. I'll let you know.

                        • 9. Re: Atomic Transactions in standalone-full.xml
                          manuel_uberti

                          I keep getting the same exception. I am assuming this is a problem related to my setup, so I'll copy the relative parts of my pom.xml files.

                           

                          This is from parent pom.xml:

                           

                          ...
                              <modules>
                                  <module>mdw-ejb</module>
                                  <module>mdw-ws</module>
                                  <module>mdw-ear</module>
                                  <module>mdw-api</module>
                                  <module>mdw-common</module>
                                  <module>mdw-rs</module>
                                  <module>mdw-dataobject</module>
                              </modules>
                          
                              <properties>
                          ...
                                <version.narayana.xts>5.3.3.Final</version.narayana.xts>
                                  <version.war.plugin>2.6</version.war.plugin>
                          ...
                              </properties>
                          
                              <dependencyManagement>
                                  <dependencies>
                          
                                      <!-- Define the version of the EJB jar so that we don't need to repeat
                                          ourselves in every module -->
                                      <dependency>
                                          <groupId>com.buddybank.mdw</groupId>
                                          <artifactId>mdw-rs</artifactId>
                                          <version>${project.version}</version>
                                          <type>jar</type>
                                      </dependency>
                          
                                      <!-- Define the version of the EJB jar so that we don't need to repeat
                                          ourselves in every module -->
                                      <dependency>
                                          <groupId>com.buddybank.mdw</groupId>
                                          <artifactId>mdw-ejb</artifactId>
                                          <version>${project.version}</version>
                                          <type>ejb</type>
                                      </dependency>
                          
                                      <!-- Define the version of the BACKEND-API jar so that we don't need to
                                          repeat ourselves in every module -->
                                      <dependency>
                                          <groupId>com.buddybank.mdw</groupId>
                                          <artifactId>mdw-api</artifactId>
                                          <version>${project.version}</version>
                                          <type>jar</type>
                                      </dependency>
                          
                                      <!-- Define the version of the COMMON jar so that we don't need to repeat
                                          ourselves in every module -->
                                      <dependency>
                                          <groupId>com.buddybank.mdw</groupId>
                                          <artifactId>mdw-common</artifactId>
                                          <version>${project.version}</version>
                                          <type>jar</type>
                                      </dependency>
                          
                                      <!-- Define the version of the WAR so that we don't need to repeat ourselves
                                          in every module -->
                                      <dependency>
                                          <groupId>com.buddybank.mdw</groupId>
                                          <artifactId>mdw-ws</artifactId>
                                          <version>${project.version}</version>
                                          <type>war</type>
                                          <scope>compile</scope>
                                      </dependency>
                          
                                      <!-- Define the version of the DATAOBJECT so that we don't need to repeat
                                          ourselves in every module -->
                                      <dependency>
                                          <groupId>com.buddybank.mdw</groupId>
                                          <artifactId>mdw-dataobject</artifactId>
                                          <version>${project.version}</version>
                                          <type>jar</type>
                                          <scope>compile</scope>
                                      </dependency>
                          
                          ...       
                          
                                      <dependency>
                                          <groupId>org.jboss.narayana.xts</groupId>
                                          <artifactId>jbossxts</artifactId>
                                          <version>${version.narayana.xts}</version>
                                      </dependency>
                          ...
                                </dependencies>
                              </dependencyManagement>
                          ...
                              <artifactId>parent</artifactId>
                          

                           

                          This from mdw-ws:

                           

                          ...
                              <parent>
                                  <artifactId>parent</artifactId>
                                  <groupId>com.buddybank.mdw</groupId>
                                  <version>0.5.6-SNAPSHOT</version>
                              </parent>
                          
                              <artifactId>mdw-ws</artifactId>
                              <packaging>war</packaging>
                          
                              <name>MDW: WAR Module</name>
                          
                              <url>http://wildfly.org</url>
                              <licenses>
                                  <license>
                                      <name>Apache License, Version 2.0</name>
                                      <distribution>repo</distribution>
                                      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
                                  </license>
                              </licenses>
                          
                              <dependencies>
                          
                                  <dependency>
                                      <groupId>com.buddybank.mdw</groupId>
                                      <artifactId>mdw-api</artifactId>
                                      <exclusions>
                                          <exclusion>
                                              <artifactId>mdw-common</artifactId>
                                              <groupId>com.buddybank.mdw</groupId>
                                          </exclusion>
                                          <exclusion>
                                              <artifactId>mdw-dataobject</artifactId>
                                              <groupId>com.buddybank.mdw</groupId>
                                          </exclusion>
                                      </exclusions>
                                      <scope>provided</scope>
                                  </dependency>
                          ...        
                                  <dependency>
                                      <groupId>org.jboss.narayana.xts</groupId>
                                      <artifactId>jbossxts</artifactId>
                                      <version>${version.narayana.xts}</version>
                                      <classifier>api</classifier>
                                      <scope>provided</scope>
                                  </dependency>
                          
                              </dependencies>
                          
                              <build>
                                  <plugins>
                                      <plugin>
                                          <groupId>org.apache.maven.plugins</groupId>
                                          <artifactId>maven-war-plugin</artifactId>
                                          <version>${version.war.plugin}</version>
                                          <configuration>
                                              <archive>
                                                  <manifestEntries>
                                                      <Dependencies>org.jboss.xts,org.jboss.jts</Dependencies>
                                                  </manifestEntries>
                                              </archive>
                                          </configuration>
                                      </plugin>
                                  </plugins>
                              </build>
                          ...
                          

                           

                          And this is from mdw-rs (where JaxWSHeaderContextProcessor is actually used):

                           

                          ...
                              <parent>
                                  <groupId>com.buddybank.mdw</groupId>
                                  <artifactId>parent</artifactId>
                                  <version>0.5.6-SNAPSHOT</version>
                              </parent>
                          
                              <artifactId>mdw-rs</artifactId>
                              <name>MDW: Layer to handle resources</name>
                              <url>http://maven.apache.org</url>
                          ...
                               <dependency>
                                      <groupId>org.jboss.narayana.xts</groupId>
                                      <artifactId>jbossxts</artifactId>
                                      <version>${version.narayana.xts}</version>
                                      <classifier>api</classifier>
                                      <scope>provided</scope>
                                  </dependency>
                              </dependencies>
                          ...
                              <build>
                                  <plugins>
                                      <plugin>
                                          <groupId>org.apache.maven.plugins</groupId>
                                          <artifactId>maven-war-plugin</artifactId>
                                          <version>${version.war.plugin}</version>
                                          <configuration>
                                              <archive>
                                                  <manifestEntries>
                                                      <Dependencies>org.jboss.xts,org.jboss.jts</Dependencies>
                                                  </manifestEntries>
                                              </archive>
                                          </configuration>
                                      </plugin>
                                  </plugins>
                              </build>
                          

                           

                          If you need some extra info, please feel free to ask.

                          • 10. Re: Atomic Transactions in standalone-full.xml
                            gytis

                            Manuel,

                             

                            I've just built MDW project (narayana-test/MDW at master · manuel-uberti/narayana-test · GitHub) and deployed mdw-ear-0.5.6-SNAPSHOT.ear to the freshly built WildFly 10.0.0.Final and I didn't get any errors (here's the log MDW deployment to WildFly 10.0.0.Final log · GitHub ). Is this what you're deploying?

                            • 11. Re: Atomic Transactions in standalone-full.xml
                              manuel_uberti

                              No, that project was related to another issue: Re: CDI BeanManager cannot find an instance of requested type

                               

                              However, I built that project starting from the MDW project I am working on here. So BOM is actually the same. Adding XTS to that gave me the reported error.

                              • 12. Re: Atomic Transactions in standalone-full.xml
                                gytis

                                Could you provide a reproducer for this issue? Because at the moment I cannot spot the issue.

                                • 13. Re: Atomic Transactions in standalone-full.xml
                                  tomjenkinson

                                  Without a reproducer I think we have to assume the system is working as expected.

                                  • 14. Re: Atomic Transactions in standalone-full.xml
                                    manuel_uberti

                                    Sorry for the late reply. I still have the error, but I haven't been able to get a reproducer to help you understanding the issue.

                                    As soon as I got some time (busy schedule these days), I will give it another try.

                                     

                                    Thanks for your patience.

                                    1 2 Previous Next