Frage

Ich versuche, einen Axis2 Web-Service zu einem OC4J 10.1.3 App-Server zu implementieren.

Ich war mit Achse 1.4 vor und hatte gerade mit allen Dateien meine eigene Shared Library erstellt. Es gab ein Problem mit 1.4, die nun mit 1,5 so gepatcht wurde ich verwende, dass aber nicht alle Bibliotheken enthalten. Dieses Mal entfalten ich die axis2.war auf den OC4J-Server und ich bin mit der axis2 Admin-Seite zu versuchen, meinen Web-Service zu implementieren.

Wenn ich einen Web-Service durch axis2 einsetzen, dann werde ich eine java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude()Z bekommen, aber ich kann die widersprüchliche Bibliothek nicht finden. Axis2 hat die neuen JAX-WS-Bibliotheken drin, aber ich denke, es ist ein Problem auf dem OC4J App-Server. Ich ausgeschlossen xml.jar (da es alt JAXB 1.0 Libs hat), und dies löst das Problem auf meinem lokalen Rechner, aber nicht auf der Linux-Box.

Ich habe versucht, den Implementierungsplan der Bearbeitung von lokalen Ordnern zuerst suchen und dies ermöglicht es mir, den Dienst zu implementieren, aber wenn ich versuche, darauf zuzugreifen, oder die WSDL, dann bekomme ich einen Fehler in Bezug auf eine Klasse Guss Ausnahme und JXDocumentBuilderFactory (I don ‚t in diesem Moment die genauen Fehler haben).

vergleichen ich die gemeinsame Bibliotheken auf der Linux-Box mit denen auf meinem lokalen Rechner und ich verwenden, um die gleichen, die auf jedem (ich habe die Versionen jedes Glas nicht überprüfen, obwohl). Wenn axis2 zu OC4J eingesetzt wird und ich meinen Dienst bereitstellen Axis2 dann würde nicht erben ich die axis2 Bibliotheken (JAX-WS, usw.)?

War es hilfreich?

Lösung

Versuchen Sie die geerbte Bibliothek in Konflikt zu entfernen, indem Sie diese in Ihrem ORion-application.xml:

<orion-application>
  <imported-shared-libraries>
    <remove-inherited name="PUT_HERE_THE_NAME_OF_THE_LIBRARY"/>
  </imported-shared-libraries>
</orion-application>

Mehr hier: aus- und / oder Ersetzen einer Oracle Shared Library importiert von Standard

Bearbeiten
Ich suchte die gemeinsame Bibliotheken und festgestellt, dass nicht da ist, jws-api.jar beim Booten geladen wird und kann nicht einfach entfernt werden:

Ersetzen Sie die OC4J JAX-WS Bibliotheken
OC4J vorläufige Unterstützung für JAX-WS hat leider bedeutet dies, dass bei OC4J Booten lädt es veraltetes JAX-WS-APIs und Implementierung von Oracle. Dies geschieht auch vor dem gemeinsam benutzten Bibliotheken in Aktion, in einem sehr frühen Stadium der OC4J Boot.
Boot-Zeit OC4J-Bibliotheken werden in boot.xml Datei in $ ORACLE_HOME / j2ee / home konfiguriert / oc4j.jar jar Bootstrap. Um loszuwerden diese:

1-Kopieren Sie die JAR-Datei $ {oracle.home} / webservices / lib / jaxws
2-Entpacken Sie die Datei OC4J.jar
3-Locate META-INF / boot.xml
Ersetzen 4-Pfades in dieser Zeile mit dem Glas:

<code-source 
   path="${oracle.home}/webservices/lib/jws-api.jar" 
   if="java.specification.version == /1\.[5-6]/"
/>  

5-Repackage oc4j.jar (vergessen Sie nicht über MANIFEST.MF - Verwendung jar -m META-INF / MANIFEST.MF)

Originalartikel: OC4J Konfiguration für Web Services

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