setProperty must be overridden by all subclasses of SOAPMessage

53,714

Solution 1

There are a few thing that might go wrong, so I will tell you what helped in my case (analogous to yours, I was using JDK 1.6.0_13).

The problem lies in JARs mismatch. First of all make sure JBoss is using JDK 1.6 check your JAVA_HOME env. variable. Secondly make sure your classes are compiled using JDK 1.6. If you run your project from Eclipse make sure Eclipse is using right JDK, the same if you run JBoss from Eclipse.

I guess your have it right, so there comes some magic. Running client do not use libraries from $JBOSS_HOME/client, but use only the ones provided in $JBOSS_HOME/lib/endorsed. Obviously if you are using any other JAX-WS-unrelated API like JPA or EJB or Servlets you can add them to the classpath, but use only lib/endorsed JAX-WS JARs.

It helped in my particular situation in case of JBoss 5.1, in earlier versions of JBoss a few other tricks worked, for instance try to add java option -Dsun.lang.ClassLoader.allowArraySyntax=true or/and -Djava.endorsed.dirs=$JBOSS_HOME/lib/endorsed when starting your client and JBoss.

Solution 2

I had the same issue with an upgrade from JBoss 4.2.2 and found the answer in the JBoss 5.1.0 Release Notes:

JBossAS 5.0.0.GA can be compiled with both Java5 & Java6. The Java5 compiled binary is our primary/recommended binary distribution. It has undergone rigorous testing and can run under both a Java 5 and a Java 6 runtime. When running under Java 6 you need to manually copy the following libraries from the JBOSS_HOME/client directory to the JBOSS_HOME/lib/endorsed directory, so that the JAX-WS 2.0 apis supported by JBossWS are used:

  • jbossws-native-saaj.jar
  • jbossws-native-jaxrpc.jar
  • jbossws-native-jaxws.jar
  • jbossws-native-jaxws-ext.jar

I was using the distribution of JBoss 5.1.0 build with Java 5 (running on JDK 1.6.0_20) and sure enough copying these JARs into the endorsed directory fixed the issue. We're not using the version compiled for Java 6 because of the note:

It should be noted however that the Java 6 compiled distribution of JBoss AS 5 is still in experimental stage.

Solution 3

It could be due to conflict issue with SAAJ jar. Copy Jboss's Saaj jar from {Jboss_HOME}/LIB to {JBOSS_HOME}/lib/endorsed. I hope this would help in resolving issue,

Solution 4

Make sure you launch JBoss with the jvm options pointing to the endorsed libs. This is not configured by default if you launch JBoss from Eclipse, using WTP, though it is if you launch JBoss from the command line.

You can add the following to the VM arguments of the Launch Configuration:

-Djava.endorsed.dirs="${JBOSS_HOME}\jboss-as\lib\endorsed"

Solution 5

try following jars to your jboss/lib/endorsed folder

jbossws-native-jaxws.jar
jbossws-native-jaxrpc.jar
jbossws-native-saaj.jar
jbossws-native-saaj.jar
Share:
53,714
Pablo Venturino
Author by

Pablo Venturino

I'm a systems engineer building up my skills in web development and agile methodologies.

Updated on August 13, 2020

Comments

  • Pablo Venturino
    Pablo Venturino almost 4 years

    I'm trying to deploy some web services in a WAR application on JBoss 5.1.0.

    I have created the source files from an existing wsdl using JAX-WS tool wsgen. This created the Service files and @XmlType annotated clases that would act as request and response wrappers.

    This classes worked well on JBoss 4.2.3, but when moving to JBoss 5.1.0, I get this exception.

    java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage

    My configuration:

    • Windows XP SP3 (but getting the same on Vista, as well as on Linux)
    • Sun JDK 1.6.0_17
    • JBoss 5.1.0 GA for jdk6

    Thanks in advance!

  • Pablo Venturino
    Pablo Venturino over 14 years
    Thanks Piotr! After all, the problem was that I was starting JBoss from within eclipse, with it's automatic launch config... which does not pass the -Djava.endorsed.dirs=$JBOSS_HOME/lib/endorsed param. After adding this (as well as running JBoss from the run.bat script) it worked fine. Thanks again! (you deserve more than just one vote up from me :) )
  • Brian Harris
    Brian Harris almost 14 years
    Tried both "-Dsun.lang.ClassLoader.allowArraySyntax=true" and "-Djava.endorsed.dirs=$JBOSS_HOME/lib/endorsed", did not work in 4.2.3.GA.
  • David Mann
    David Mann almost 12 years
    Good to note that eclipse won't expand $JBOSS_HOME in a run target's jvm options.
  • Donatello
    Donatello over 11 years
    i think this type of workaround is pretty bad, as it could have impact on others deployed applications, and make the industrialization process more difficult. The scope should be limited to application package (like classloader config/filters).
  • Roland Schneider
    Roland Schneider over 11 years
    Copying the jboss-saaj.jar from the jboss/server/<config>/lib directory to jboss/lib/endorsed did the trick for me on jboss-4.2.3.GA
  • David Mann
    David Mann over 10 years
    Wow I ended up back here again today and don't even remember the first time!