35 votes

setProperty doit être remplacé par toutes les sous-classes de SOAPMessage

Je suis en train de déployer des services web dans une GUERRE d'application JBoss, 5.1.0.

J'ai créé les fichiers source à partir d'un wsdl à l'aide de JAX-WS outil wsgen. Cela a créé le Service de fichiers et @XmlType annoté clases qui agirait à titre de requête et de réponse des wrappers.

Cette classes bien travaillé sur JBoss 4.2.3, mais quand on se déplace vers JBoss 5.1.0, je bénéficier de cette exception.

java.lang.UnsupportedOperationException: setProperty doit être remplacée par toutes les sous-classes de SOAPMessage

Ma configuration:

  • Windows XP SP3 (mais la même chose sur Vista, ainsi que sur Linux)
  • Sun JDK 1.6.0_17
  • JBoss 5.1.0 GA pour jdk6

Merci à l'avance!

32voto

Piotr Kochański Points 8162

Il y a quelques chose qui pourrait aller mal, alors je vais vous dire ce qui les a aidé dans mon cas (analogue à la vôtre, j'ai été à l'aide du JDK 1.6.0_13).

Le problème réside dans les Pots d'incompatibilité. Tout d'abord assurez-vous que JBoss est à l'aide de JDK 1.6 vérifier votre JAVA_HOME env. variable. Deuxièmement, assurez-vous que vos classes sont compilés à l'aide de JDK 1.6. Si vous exécutez votre projet à partir d'Eclipse. assurez-vous que l'Éclipse est à l'aide de droite JDK, même si vous exécutez JBoss, Eclipse.

Je suppose que vous avez-il bon, si il arrive quelque chose de magique. Client en cours d'exécution de ne pas utiliser des bibliothèques de $JBOSS_HOME/client, mais uniquement celles qui sont fournies par $JBOSS_HOME/lib/approuvé. Évidemment, si vous utilisez un autre JAX-WS-sans rapport avec l'API comme JPA ou des EJB ou des Servlets, vous pouvez les ajouter dans le classpath, mais utiliser seulement lib/approuvé JAX-WS Pots.

Il a aidé dans mon cas en particulier dans le cas de JBoss 5.1, dans les versions antérieures de JBoss quelques autres trucs travaillé, par exemple, essayez d'ajouter option java -Dsun.lang.Chargeur de classe.allowArraySyntax=true ou/et -Djava.approuvé.dirs=$JBOSS_HOME/lib/approuvé lors du démarrage de votre client et JBoss.

23voto

phatblat Points 2046

J'ai eu le même problème avec une mise à niveau à partir de JBoss 4.2.2 et trouvé la réponse dans les JBoss 5.1.0 Notes De Publication:

JBossAS 5.0.0.GA peut être compilé avec les deux Java5 & Java6. Le Java5 binaire compilé est notre principal/recommandé distribution binaire. Il a subi des tests rigoureux et peut fonctionner sous deux Java 5 et Java 6 runtime. Lors de l'exécution sous la version 6 de Java, vous devez copier manuellement les bibliothèques suivantes à partir de la JBOSS_HOME/répertoire du client à la JBOSS_HOME/lib/approuvé répertoire, de sorte que le JAX-WS 2.0 api pris en charge par JBossWS sont utilisés:

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

J'ai été en utilisant la distribution de JBoss 5.1.0 construire avec Java 5 (en cours d'exécution sur JDK 1.6.0_20) et bien sûr la reproduction de ces Bocaux dans la approuvé répertoire résolu le problème. Nous ne sommes pas à l'aide de la version compilée pour Java 6 en raison de la note:

Il convient toutefois de noter que la version 6 de Java compilé distribution de JBoss as 5 est encore en phase d'expérimentation.

7voto

user447390 Points 51

Cela pourrait être dû à un problème de conflit avec SAAJ jar. Copier Jboss 's Saaj jar de {Jboss_HOME}/LIB à {JBOSS_HOME}/lib/endorsed . J'espère que cela aiderait à résoudre le problème,

4voto

user538000 Points 31

Assurez-vous de lancer JBoss avec les options jvm pointant vers les bibliothèques approuvées. Ceci n'est pas configuré par défaut si vous lancez JBoss partir d'Eclipse, en utilisant WTP , bien que ce soit le cas si vous lancez JBoss partir de la ligne de commande.

Vous pouvez ajouter ce qui suit aux arguments de la machine virtuelle de la configuration de lancement:

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

2voto

user1397770 Points 43

essayez de suivre les fichiers jars dans votre dossier jboss / lib / endossed

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X