Frage

Ich versuche, einige Webdienste in einer Kriegsanwendung auf JBoss 5.1.0 bereitzustellen.

Ich habe die Quelldateien aus einem vorhandenen WSDL mit JAX-WS-Tool aus erstellt wsgen. Dadurch wurden die Servicedateien und @xmlType kommentierte Klassen erstellt, die als Anfrage- und Antwortverpackungen fungieren würden.

Dieser Kurse hat gut bei JBoss 4.2.3 funktioniert, aber wenn ich zu JBoss 5.1.0 wechselte, bekomme ich diese Ausnahme.

java.lang.unsupportedoperationException: setProperty muss durch alle Unterklassen von SOAPMESSAGE überschrieben werden

Meine Konfiguration:

  • Windows XP SP3 (aber auf Vista sowie unter Linux dasselbe erhalten)
  • Sun Jdk 1.6.0_17
  • JBOSS 5.1.0 GA für JDK6

Danke im Voraus!

War es hilfreich?

Lösung

Es gibt ein paar Dinge, die schief gehen könnten, also werde ich Ihnen sagen, was in meinem Fall geholfen hat (analog zu Ihrem, ich habe JDK 1.6.0_13 verwendet).

Das Problem liegt in Gläser -Missverhältnissen. Stellen Sie zunächst sicher, dass JBoss JDK 1.6 verwendet, um Ihre java_home env zu überprüfen. Variable. Stellen Sie zweitens sicher, dass Ihre Klassen mit JDK 1.6 zusammengestellt werden. Wenn Sie Ihr Projekt von Eclipse ausführen, stellen Sie sicher, dass Eclipse den richtigen JDK verwendet, das gleiche, wenn Sie JBoss von Eclipse ausführen.

Ich denke du hast es richtig, also kommt etwas Magie. Kunden leiten unterlassen Sie Verwenden Sie Bibliotheken von $ jboss_home/client, verwenden Sie jedoch nur die, die in $ JBOSS_HOME/LIB/BISEDSLEIDS bereitgestellt werden. Wenn Sie eine andere JAX-WS-nicht miteinander verbundene API wie JPA oder EJB oder Servlets verwenden, können Sie sie dem Klassenpfad hinzufügen, aber verwenden nur lib/unterstützte JAX-WS-Gläser.

Es half in meiner jeweiligen Situation im Falle von JBoss 5.1 in früheren Versionen von JBoss ein paar andere Tricks, beispielsweise Java Option -dsun.lang.Classloader.AllowarraySyNtax = True oder/und -djava.endors.dirs = $ Jboss_home/lib/unterstützt beim Starten Ihres Kunden und JBoss.

Andere Tipps

Ich hatte das gleiche Problem mit einem Upgrade von JBoss 4.2.2 und fand die Antwort in derJBOSS 5.1.0 Versionshinweise:

Jbossas 5.0.0.ga kann sowohl mit Java5 als auch mit Java6 zusammengestellt werden. Der Java5 -kompilierte binäre ist unsere primäre/empfohlene Binärverteilung. Es wurde strengen Tests unterzogen und kann sowohl unter Java 5 als auch einer Java 6 -Laufzeit laufen. Wenn Sie unter Java 6 ausgeführt werden, müssen Sie die folgenden Bibliotheken manuell aus dem Verzeichnis jboss_home/client in das von JBOSSWS unterstützte JAX-WS 2.0-APIs JAX-WS 2.0-APIs verwenden, die von JBOSSWS unterstützt werden, manuell kopieren.

  • JBOSSWS-nativ-saaj.jar
  • JBOSSWS-NATION-JAXRPC.JAR
  • JBOSSWS-NATION-JAXWS.JAR
  • JBOSSWS-NATION-JAXWS-EXT.JAR

Ich habe die Verteilung von JBoss 5.1.0 Build mit Java 5 (ausgeführt auf JDK 1.6.0_20) verwendet und diese Gläser in das unterstützte Verzeichnis das Problem sicherlich kopiert. Wir verwenden die für Java 6 zusammengestellte Version wegen des Hinweiss nicht:

Es ist jedoch zu beachten, dass die Java 6 -Verteilung von JBoss als 5 noch im experimentellen Stadium zusammen ist.

Es könnte an Konfliktproblemen mit dem Problem liegen SAAJ Krug. Kopieren Jboss's Saaj Glas von {Jboss_HOME}/LIB zu {JBOSS_HOME}/lib/endorsed. Ich hoffe, das würde bei der Lösung von Problemen helfen,

Stellen Sie sicher, dass Sie starten JBoss mit dem jvm Optionen, die auf die unterstützten Bibliotheken hinweisen. Dies ist nicht standardmäßig konfiguriert, wenn Sie starten JBoss von eclipse, verwendet WTP, obwohl es so ist, wenn Sie starten JBoss Aus der Befehlszeile.

Sie können die VM -Argumente der Startkonfiguration Folgendes hinzufügen:

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

Versuchen Sie, Gläser zu Ihrem JBOSS/LIB/BISEDSED -Ordner zu folgen

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

Mein Projekt basiert einfach auf:

  • CXF 2.5.0 (SOAP -Webservice -Verbraucher)
  • Kriegsversammlung (kein Ohr)
  • Kein Jboss-Web
  • Kein JBOSS-CLASSELADING
  • Keine Änderungen in JBoss/lib/befürwortet (nur Xalan, Serializer, Xercesimpl)
  • Laufen auf JBOSS-4.2.1.ga + JDK 1.6

Was es für mich funktioniert hat, war einfach, die Abhängigkeiten von Maven -Abhängigkeiten neben CXF hinzuzufügen:

    <dependency>
        <groupId>javax.xml.ws</groupId>
        <artifactId>jaxws-api</artifactId>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-tools</artifactId>
    </dependency>
    <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>woodstox-core-asl</artifactId>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.messaging.saaj</groupId>
        <artifactId>saaj-impl</artifactId>
    </dependency>

Hoffe es wird helfen!

Ich kopierte die notwendige Lib (SAAJ-IMPL in meinem Fall) in meinen Krieg aus der CXF-Verteilung und schaltete die Isolation von JBoss Classloader mit der Datei /web-inf/jboss-classloader.xml des folgenden Inhalts ein:


<classloading xmlns="urn:jboss:classloading:1.0"
    domain="MyDomain"
    export-all="NON_EMPTY"
    import-all="true">
</classloading>

Hoffe diese Hilfe für jemanden.

Wenn Sie diesen Fehler im Client beim Ausführen einer Client -Anwendung aufnehmen, müssen Sie neben denen in dieser Antworten:

  1. Bestimmen Sie, in welcher Instanz des JVM die Anwendung ausgeführt wird. In meinem Fall hatte ich eigenständige Anwendungen, die JDK und Applets mit dem JRE verwendeten. Dies wird irgendwo sein wie /path/jre/bin/

  2. Fügen Sie die Gläser davon hinzu Antworten zu path/jre/lib/endorsed. Ich musste das erstellen endorsed Verzeichnis.

Dies sagt der VM, die JBoss -spezifischen Implementierungen vor der Java -Sprache zu laden. Dies geschieht im Bootstrap -Klassenlader, lange bevor die Gläser im Klassenpfad geladen sind.

Dies ist der Link zu diesem Problem: https://issues.jboss.org/browse/jbws-2418

Meine Serverkonfiguration ist JBoss als 4.2.1 Ga und wie unten funktioniert sie.

Bibliotheken, die ich bei lib unterstützt habe;

  • JAXWS2.1.1_20070501
  • JBOSSWS-NATION-JAXRPC
  • JBOSSWS-NATION-JAXWS
  • JBOSSWS-NATION-JAXWS-EXD
  • JBOSSWS-nativ-saaj
  • Serializer
  • Xalan
  • Xercesimpl

Ich benutze JBoss als 4.3. In meinem Fall habe ich den Ordner "Jbossws.sar" aus "Bereitstellen" entfernt.

Siehe dieses Problem: https://issues.jboss.org/browse/jbws-2821

Das Hinzufügen von SAAJ-IMPL zum Lib-Ordner meiner Web-App hat diesen Fehler behoben. Ich verwende JBoss 4.2.3 und CXF 2.4.10.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top