9 Replies Latest reply on Jul 15, 2009 10:38 PM by mtirumalreddy

    Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3.1.1

    mtirumalreddy

      Hi,

      I just now started using JBossWS-Metro for my WS stack in JBoss AS 4.2.3. But iam getting problems right from starting.

      First problem is, i successfully installed JBossWS-metro on my JBoss Server. When i run the "ant tests" target, as suggested by the installation guide, even though build was successfull, many tests were actually failed.

      When i started the server, it started sucessfully with Metro. but when i deployed a appication containing EJB3.0 SLSB exposed as WS, deployment failed. saying that,


      javax.xml.ws.WebServiceException: Failed to build METRO runtime model


      for this error, the root cause was,

      Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.ws.core.soap.SAAJMetaFactoryImpl


      Please suggest me how can i fix this.


        • 1. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
          ropalka

          You didn't install Metro properly.
          The CNFE mentioned above says there are still JBossWS Native libraries.

          • 2. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
            mtirumalreddy

            Hi Richard,

            Thanks for your reply.

            But how i come to know that, whether the metro installed successfully or not?. Because, when i run the build target (deploy-jboss423) to install it says "Build Successfull".

            So how can i verify that, still i have some JBossWS native jar files? or how can i install metro properly? Please suggest me

            • 3. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
              ropalka

              Are you using source or binary distribution?
              In case of binary distribution I suggest you to double check JBossAS paths in ant.properties file.

              • 4. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
                mtirumalreddy

                Are you using source or binary distribution?
                In case of binary distribution I suggest you to double check JBossAS paths in ant.properties file.

                Ya iam using binary distribution. Incfact, it sucessfully installs and when i access "http://localhost:8080/jbossws",it is showing the build information as metro.

                This is my ant.properties file. and iam using JBoss AS 4.2.3. And everything else is normal (default profile, and target is "ant deploy-jboss423").

                #
                # A sample ant properties file
                #
                
                # Optional JBoss Home
                jboss423.home=C:/DevEnv/JBoss-4.2.3.GA
                jboss500.home=@jboss500.home@
                jboss501.home=@jboss501.home@
                jboss510.home=@jboss510.home@
                jboss600.home=@jboss600.home@
                
                # The JBoss server under test. This can be [jboss423|jboss500|jboss501|jboss510|jboss600]
                jbossws.integration.target=jboss423
                
                # The JBoss settings
                jboss.server.instance=default
                jboss.bind.address=localhost
                
                # JBoss Repository
                #jboss.repository=file:/home/tdiesler/svn/jboss.local.repository
                jboss.repository=http://repository.jboss.org
                
                # JBoss JMX invoker authentication
                #jmx.authentication.username=admin
                #jmx.authentication.password=admin
                
                # Java Compiler options
                javac.debug=yes
                javac.deprecation=no
                javac.fail.onerror=yes
                javac.verbose=no


                Please suggest me in this regard. iam unable to solve.

                • 5. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
                  ropalka

                  Your ant.properties file looks correct.
                  What's the location of your JBossWS root?
                  Doesn't it contain whitespace in the path?

                  • 6. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
                    asoldano

                    Look for the cause of the exception: something is looking for the jbossws-native impl of saaj, hence you have some jbossws-native library in your AS/classpath. So, again, search for jbossws-native-*.* (and jboss-saaj.jar, jboss-jaxws*.jar, jboss-jaxrpc.jar) files, including the endorsed dir and remove those libraries. Most probably they were not removed in the installation process.

                    • 7. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
                      mtirumalreddy

                      Alessio Soldano

                      Thanks for your response.

                      Now I am able to run my application. I tried with different versions of JBossWs-metro before this (jbossws-metro-3.1.0.GA and jbossws-metro-3.0.5.GA). I thought that, there might be some problem with "jbossws-metro-3.1.1.GA" version.

                      But i noticed one interesting thing. Previously it was looking for "org.jboss.ws.core.soap.SAAJMetaFactoryImpl" class file. Before running the jbossws-metro build, the class was there in "jbossws-core.jar" file (in location server\default\deploy\jbossws.sar). After running the jbossws-metro build, i copied this file again and tested my web service. it was successfully deployed, without the said error. When I browsed to "http://localhost:8080/jbossws", it showed me the service as deployed. But when i click on the link to view the WSDL file, some error was thrown. Because, it was actually not published the WSDL at that time.

                      Then with fresh installation (for both JBoss AS and jbossws-metro), i followed your suggestion. I observed these things.

                      1. I searched for "jbossws-native-*.*". I found nothing.
                      2. I searched for "jboss-saaj.jar". There was one file at "JBoss_Home\lib\endorsed" directory.
                      3. I searched for "jboss-jaxws*". I got "jboss-jaxws-ext.jar" and "jboss-jaxws.jar" in the same dir.
                      4. I searched for "jboss-jaxrpc". I got the jar in the same dir.


                      I deleted all the said jar files from endorsed directory. I tried to deploy the services. They were deployed and published successfully. And i executed the "ant tests" target, and all the tests were also successful.

                      In my case there was a problem with build file or some other environment thing? because, for others this was not the issue (I am using JDK1.6_11, ANT 1.7.0, JBoss AS 4.2.3 GA and jbosws-metro3.1.1 GA).

                      In my scenario, we are going to use JBossWS-Metro in our production server (JBoss AS 4.2.3 GA). Here i have a concern. production server is using a default configuration for JBossWS (which comes along with server).

                      If i want to replace with metro, then i have to install metro into the present environment. but this metro installation will delete some jar files and replaces with some others during the installation.


                      What if some other application is using those files?
                      is there any way to externalize the installation, without effecting the current instance?
                      Where the WSDL files will be published? (In case i use JBossWS native, WSDL will be published to \default\data\wsdl dir).


                      Please suggest me in this.


                      • 8. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
                        asoldano

                        Hi,


                        What if some other application is using those files?

                        The jbossws stack switch replaces libraries, almost all of them being implementations. If you are coding against standards, you should not have problems. If you're using implementation specific features, unfortunately you might need to test if everything is still working as expected.


                        is there any way to externalize the installation, without effecting the current instance?

                        You provide the server instance to install to when running the installation.
                        For a better understanding of what is deleted/added/changed, take a look at the build files in the jbossws distribution.


                        Where the WSDL files will be published? (In case i use JBossWS native, WSDL will be published to \default\data\wsdl dir).

                        You should not look at the wsdl there, that's an implementation detail. Contracts are published at http(s)://your_host:you_port/context/xyz according to the information you provide using annotations (@WebContext, etc.) or deployment descriptors.

                        • 9. Re: Unable to deploy ear with JBoss4.2.3 and JBossWS-Metro 3
                          mtirumalreddy

                          Alessio Soldano,

                          Thanks a lot for your response.

                          I am aware of the points you mentioned. But actually my intention was to know whether there is any alternate approach, instead of installing into JBoss AS.