JBoss Community

Re: jboss6 final and jbossws 3.4.0

created by Alessio Soldano in JBoss Web Services - View the full discussion

Antoine Brun wrote:

 

Hello,

 

I'm currently trying to migrate our application from jboss5 to jboss6 and I'm running into some issues.

 

My first try was with jboss6 CR1:

We have some web services (EJB3 endpoints) and they all have @HandlerChain declaration (we use this to do the XML validation since the built-in SOAP validation didn't work on Jboss5) and it all worked fine with jboss5 and jbossws native 3.3.1 GA.

 

Now with jboss6 CR1, since it is shipped with jbossws-CXF 3.4.1 my @HandlerChain declaration does not seem to be valid any more (btw, I was not able to find any clear document on own to declare a handler chain with CXF).

@HandlerChain is supposed to work regardless of the installed webservice stack; it's part of JSR181 and it's also tested by the JavaEE 6 TCK, so it must work. Perhaps you can open another thread for this specific issue, with more details on your deployment, so that we try isolating what are the differences in jbossws-native and jbossws-cxf behaviour here. Also, try taking a look at the testsuite that includes samples with @HandlerChain.

 

Back to the AS 6 installation related topic, first of all, consider that JBoss AS 6 Final should be used now that it's out, forget about CR1.

Today, I've downloded jboss6 Final with CXF 3.4.1

18:32:43,489 INFO  [AbstractServerConfig] JBoss Web Services - Stack CXF Server 3.4.1.GA

 

and just like for jboss6 CR1, I tried to deploy jbossws native.

But this time I get:

18:34:46,515 INFO  [AbstractServerConfig] JBoss Web Services - Native Server 3.4.0.GA
18:34:46,523 ERROR [AbstractKernelController] Error installing to PreInstall: name=WSDescriptorDeployer state=Real: java.lang.NoClassDefFoundError: org/jboss/wsf/spi/metadata/DescriptorParser
        at java.lang.Class.getDeclaredConstructors0(Native Method) [:1.6.0_23]
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) [:1.6.0_23]
        at java.lang.Class.getDeclaredConstructors(Class.java:1836) [:1.6.0_23]

.....

Caused by: java.lang.ClassNotFoundException: org.jboss.wsf.spi.metadata.DescriptorParser
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202) [:1.6.0_23]

 

So, jboss6 CR1 comes with  Stack CXF Server 3.4.0.CR3 and I can install Native Server 3.4.0.GA

 

But, jboss6 Final comes with CXF 3.4.1 and I cannot install Native Server 3.4.0.GA...

Right, as 3.4.0 does not support AS 6 Final. The short reference page is http://community.jboss.org/wiki/JBossWS-SupportedTargetContainers , but you can also read here http://jbossws.blogspot.com/2010/12/ready-for-jboss-as-6-and-then.html . Basically, the insight on this topic is that 3.4.1 was created only for supporting the last minute changes that have been applied on JBoss AS 6 between CR1 and GA. Some of those changes required non backward compatible changes on the JBossWS container integration code, hence the need for a new version (3.4.1) supporting AS 6 Final only.

 

Binary versions of JBossWS 3.4.1 have not been added to the download page yet, mainly because they were only meant for being included in AS 6 Final, but I understand the potential need for switching AS 6 Final to jbossws native (jbossws-cxf-3.4.1 is included in AS 6 Final), so I'll most probably add the 3.4.1 files to http://jboss.org/jbossws/downloads later today or tomorrow.

Can someone please explain me:

- how to install jbossws native in jboss6?

- where do I get jbossws native 3.4.1 (is it available? 3.4.0 native or CXF are the latest available at http://www.jboss.org/jbossws/downloads )?

See above on the availability of 3.4.1 binary distributions at http://jboss.org/jbossws/downloads . In the mean time, you can checkout the sources from https://svn.jboss.org/repos/jbossws/stack/native/tags/jbossws-native-3.4.1.GA and build them (ant deploy-jboss601 as JBoss AS 6 Final was not out yet when 3.4.1 was tagged).

- how do I declare HandlerChain with CXF?

 

my EJB have @HandlerChain(file = "/META-INF/soapHandler/handler-chain.xml")

 

and the handler-chain.xml is as follow:

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

  <handler-config>
    <handler-chain>
        <handler-chain-name>SoapHandler</handler-chain-name>
        <handler>
            <handler-name>SoapMessageValidationHandler</handler-name>
            <handler-class>com.ubiqube.api.ws.soapHandler.MessageValidationSoapHandler</handler-class>
        </handler>
    </handler-chain>
  </handler-config>


 

You declare the handler chain the same way you do with native, as that's defined by standards. My guess here is that your problem here is in the resolution of the specified path. First try moving the handler chain xml file close to the endpoint declaration class and using

file = "handler-chain.xml"

then try loading it from META-INF removing the initial slash in the path.

Reply to this message by going to Community

Start a new discussion in JBoss Web Services at Community