11 Replies Latest reply on Feb 1, 2018 9:19 PM by rajneeshmadhu

    : mapped-name is required for cxf of deployment auto-update-ws.war

    dgh1

       

      I am not sure where exactly sure where to start, here  but I have a  web service war file built using Apache CXF. This war file runs great in apache tomcat container, so I have some level of confidence.

       

      However, when I try putting in deploy dir and restarting JBoss 5.1 with this war file I get the below exceptions. I am not sure what

       

      “java.lang.RuntimeException: mapped-name is required for cxf of deployment auto-update-ws.war”

       

      means or what I need to do to resolve.  Below also is the jbossws-cxf.xml I am using for this based on “JBossWS - Stack CXF User Guide” and the web.xml

       

       

       

      10:48:03,326 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 2m:56s:966ms

      11:32:38,694 INFO  [TomcatDeployment] deploy, ctxPath=/auto-update-ws

      11:32:38,969 ERROR [StandardContext] Context [/auto-update-ws] startup failed due to previous errors

      java.lang.RuntimeException: mapped-name is required for cxf of deployment auto-update-ws.war

              at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXmlResourceEnvRefs(WebResourceHandler.java:287)

              at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXml(WebResourceHandler.java:325)

              at org.jboss.web.tomcat.service.TomcatInjectionContainer.processMetadata(TomcatInjectionContainer.java:550)

              at org.jboss.web.tomcat.service.WebCtxLoader.start(WebCtxLoader.java:158)

              at org.apache.catalina.core.StandardContext.start(StandardContext.java:4272)

              at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)

              at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)

              at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)

              at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)

              at org.jboss.web.deployers.WebModule.start(WebModule.java:97)

       

       

      DEPLOYMENTS IN ERROR:

        Deployment "vfszip:/space/server/default/deploy/auto-update-ws.war/" is in error due to the following reason(s): org.jboss.deployers.spi.DeploymentException: URL file:/space/server/default/tmp/a69515-bvwhsb-g4sr37lt-1-g4sssbdl-1ep/auto-update-ws.war/ deployment failed

       

              at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)

              at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)

              at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)

              at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)

              at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)

              at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)

              at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

       

       

      jbossws-cxf.xml

       

      <beans

        xmlns='http://www.springframework.org/schema/beans'

        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'

        xmlns:beans='http://www.springframework.org/schema/beans'

        xmlns:jaxws='http://cxf.apache.org/jaxws'

        xsi:schemaLocation='http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://cxf.apache.org/jaxws

        http://cxf.apache.org/schemas/jaxws.xsd'>

       

        <!-- one or more jaxws:endpoint POJO declarations -->

       

        <jaxws:endpoint

          id='p1'

          address='http://nemo:8080/auto-update-ws/p1' 

          implementor='com.oti.main.webservice.UpdateServiceImpl'>

          <jaxws:invoker>

            <bean class='org.jboss.wsf.stack.cxf.InvokerJSE'/>

          </jaxws:invoker>

        </jaxws:endpoint>

       

      </beans>

       

       

      Web.xml

       

      <?xml version="1.0" encoding="UTF-8"?>

      <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

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

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

            id="WebApp_ID" version="2.5">

       

            <display-name>SimpleService</display-name>

           

           

            <servlet>

                  <servlet-name>s1</servlet-name>

                  <servlet-class>com.oti.main.webservice.SimpleServlet</servlet-class>

            </servlet>

            <servlet-mapping>

                  <servlet-name>s1</servlet-name>

                  <url-pattern>/*</url-pattern>

            </servlet-mapping>

           

      </web-app>

       

       

        • 1. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
          asoldano

          Hi,

          could you please create a jira issue for this attaching the deployment archive (or slimmed down version of it, but still reproducing the problem), so that we can better analyse? Also, the code of the endpoint(s) might help, this is somehow related to some field's injection, looks very similar to something solved in the past (https://jira.jboss.org/jira/browse/JBAS-5359).

          Thanks

          • 2. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
            gribo19

            I add the same probleme today trying to use camel and cxf in JBoss 5.1

             

            I finally get in working excluding different artifact-id from my pom configuration

             

            <properties>
                    <cxf.version>2.2.6</cxf.version>
                </properties>

            <dependencies>
                    <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                        <version>4.4</version>
                        <scope>test</scope>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                        <version>2.5.6.SEC01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-tx</artifactId>
                        <version>2.5.6.SEC01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-jms</artifactId>
                        <version>2.5.6.SEC01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-aop</artifactId>
                        <version>2.5.6.SEC01</version>
                        <exclusions>
                            <exclusion>
                                <artifactId>aopalliance</artifactId>
                                <groupId>aopalliance</groupId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-web</artifactId>
                        <version>2.5.6.SEC01</version>
                        <scope>runtime</scope>
                    </dependency>
                   
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-frontend-jaxws</artifactId>
                        <version>${cxf.version}</version>
                        <exclusions>
                            <exclusion>
                                <artifactId>jaxb-impl</artifactId>
                                <groupId>com.sun.xml.bind</groupId>
                            </exclusion>
                            <exclusion>
                                <artifactId>jaxb-api</artifactId>
                                <groupId>javax.xml.bind</groupId>
                            </exclusion>
                           
                           
                        </exclusions>
                       
                    </dependency>
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
                        <version>${cxf.version}</version>
                        <exclusions>
                            <exclusion>
                                <artifactId>xmlbeans</artifactId>
                                <groupId>org.apache.xmlbeans</groupId>
                            </exclusion>
                            <exclusion>
                                <artifactId>jaxb-api</artifactId>
                                <groupId>javax.xml.bind</groupId>
                            </exclusion>
                            <exclusion>
                                <artifactId>geronimo-stax-api_1.0_spec</artifactId>
                                <groupId>org.apache.geronimo.specs</groupId>
                            </exclusion>
                            <exclusion>
                                <artifactId>geronimo-annotation_1.0_spec</artifactId>
                                <groupId>org.apache.geronimo.specs</groupId>
                            </exclusion>
                            <exclusion>
                                <artifactId>jaxen</artifactId>
                                <groupId>jaxen</groupId>
                            </exclusion>
                            <exclusion>
                                <artifactId>wsdl4j</artifactId>
                                <groupId>wsdl4j</groupId>
                            </exclusion>
                        </exclusions>
                       
                    </dependency>
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-transports-http</artifactId>
                        <version>${cxf.version}</version>
                    </dependency>
                    
                    <dependency>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                        <version>1.1.1</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.camel</groupId>
                        <artifactId>camel-core</artifactId>
                        <version>2.1.0</version>
                        <exclusions>
                            <exclusion>
                                <artifactId>commons-logging-api</artifactId>
                                <groupId>commons-logging</groupId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.camel</groupId>
                        <artifactId>camel-spring</artifactId>
                        <version>2.1.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.camel</groupId>
                        <artifactId>camel-jms</artifactId>
                        <version>2.1.0</version>
                        <exclusions>
                            <exclusion>
                                <artifactId>geronimo-jms_1.1_spec</artifactId>
                                <groupId>org.apache.geronimo.specs</groupId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.camel</groupId>
                        <artifactId>camel-cxf</artifactId>
                        <version>2.1.0</version>
                        <exclusions>
                            <exclusion>
                                <artifactId>cxf-rt-transports-http-jetty</artifactId>
                                <groupId>org.apache.cxf</groupId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                </dependencies>

            There were pb with jetty, geronimo , jaxb hope this help

            • 3. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
              I have ran into a similar issue today and with pretty much the exact stack trace.  Was there any head way on this issue?  Thanks alot guys.
              • 4. Re: : mapped-name is required for cxf of deployment auto-update-ws.war

                I had similar problem trying to deploy war-in-ear with webservices & (some of) apache CXF jars included in.

                Similar exception appeared. When I included annotations-api.jar in the war file and turned on classloading isolation, the exception dissapeared and everything worked perfectly.

                 

                I suspect (not sure) that CXF has it's own mechanism of resource injection which uses @javax.annotation.Resource annotation, and all  properties annotated with @Resource aren't supposed to be injected by JBoss in deploytime, but exactly that happens.

                 

                If annotations-api.jar is present, and classloading isolation is on - then jboss will not detect @Resource annotations in cxf and will not try to inject them (because Resource.class from annotations-api.jar will overwrite Resource.class from jboss in CXF's classloader, and for JVM point of view, CXF's @Resource annotation will be different than jboss'es @Resource annotations).

                • 5. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                  p_helmy

                  I get the same error with CXF 2.2.9 and JBoss 6.0.0.M4.

                   

                  The problem occurred with the following directory structure:

                  test.war

                       WEB-INF

                            lib

                                 cxf-2.2.9.jar

                   

                  So just adding the CXF library to an empty war is enough to reproduce the problem.

                   

                  I am afraid that class isolation solution may affect any other annotations that we may need JBoss to recognize in the war directory.  I think this is a bug that should be fixed in JBoss.

                  • 6. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                    asoldano

                    JBossAS 6.0.0.M4 comes with JBossWS-CXF stack installed. That means CXF libraries are already available and used on the server.

                    Generally speaking you don't need (and shouldn't) embedd cxf libraries anymore in your applications.

                    • 7. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                      gribo19

                      I tried today to upgrade my web service project from cxf 2.2.6 to 2.3.2 and I come up with the mapped-name is required for cxf....

                      I finally got it work adding geronimo-annotation_1.0_spec:

                      Here is my pom's dependencies for sharing :

                       

                      <dependency>

                             <groupId>org.apache.cxf</groupId>

                             <artifactId>cxf-rt-frontend-jaxws</artifactId>

                              <version>2.3.2</version>

                           </dependency>

                           <dependency>

                             <groupId>org.apache.cxf</groupId>

                             <artifactId>cxf-rt-transports-http</artifactId>

                             <version>2.3.2</version>

                           </dependency>

                          <dependency>

                             <groupId>org.apache.geronimo.specs</groupId>

                              <artifactId>geronimo-annotation_1.0_spec</artifactId>

                            <version>1.1.1</version>

                          </dependency>

                      • 8. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                        zhahadoom

                        Had the exact same issue as Mr User. Philippe's solution solved it for me. Cheers!

                        • 9. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                          ndipiazza

                          I'm experiencing this same issue, on JBoss 5.1.0.EAP

                           

                          Adding geronimo-annotation_1.0_spec doesn't seem like a very safe solution. i'd prefer to get the *real* solution.

                           

                          Anyone know what the true cause of this is? I know AS 5.1.0.EAP doesn't have CXF libraries pre-bundled. Any ideas?

                          • 10. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                            ndipiazza

                            Confirmed with Redhat this is a JBoss 5 bug. There is a fix available on a later EAP version.

                            • 11. Re: : mapped-name is required for cxf of deployment auto-update-ws.war
                              rajneeshmadhu

                              I ran into similar issue number of times while using cxf 2.3.2 on Jboss 5.1.0. Surprisingly, just changing the first line in web.xml to the following one resolved the issue:

                               

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