Webservice java gibt.lang.reflektieren.InvocationTargetException

Erhalte ich die obige Meldung, wenn eine Anfrage an ein java-webservice.

Wir ursprünglich erstellt eine Java-Konsolenanwendung, und manuell übermittelt eine xml-Datei. Beim ausführen dieser wird als Java-Applikation die Reaktion ist erfolgreich erstellt und angezeigt werden, mithilfe von System.aus.println. Wir erstellen die web-service-von der Auswahl der java-Datei, enthält der Methoden und der Auswahl von "erstellen von webservice -" festlegen der dynamischen Projekt, die der webservice erstellt werden und die Methoden ausgesetzt werden.

Was die Anwendung tut, ist die Einnahme einer xml-Datei und unmarshalling es sich hierbei um ein Objekt mit:

 public static Object unmarshalToObject(Class classToBeBound,
   String xmlRequest) {
  Object obj = new Object();
  try {
   JAXBContext jc = JAXBContext.newInstance(classToBeBound);
   Unmarshaller um = jc.createUnmarshaller();
   obj = um.unmarshal(new StringReader(xmlRequest));
  } catch (Exception e) {
   e.printStackTrace()
  }
  return obj;
 }

Einige die Verarbeitung erfolgt auf die Datei und dann ein Objekt gemarshallt zu xml wie folgt:

 public static String marshalToXML(Object data) {
  StringWriter sw = new StringWriter();
  try {
   logger.info("Create new Marshall");
   JAXBContext jc = JAXBContext.newInstance("ContextPathName");
   logger.info("Marshalled to xmlObjects");
   Marshaller marshaller = jc.createMarshaller();
   marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
   marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
   marshaller.marshal(data, sw);
  } catch (Exception e) {
   logException(logger, e);
  }
  return sw.toString();
 }

Folgenden ist die Codezeile, die scheint zu sein, verursacht ein Problem, da der logger zeigt die Meldung vor:

JAXBContext jc = JAXBContext.newInstance("ContextPathName");

Den webservice wird nie in die nächste Zeile - das folgende ist der Körper der SOAP-Nachricht:

  <soapenv:Fault>
     <faultcode>soapenv:Server.userException</faultcode>
     <faultstring>java.lang.reflect.InvocationTargetException</faultstring>
     <detail>
        <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">servername</ns1:hostname>
     </detail>
  </soapenv:Fault>

Habe ich ein Try/Catch um diesen code-Abschnitt, der sogar so weit wie der Suche nach JAXBExceptions aber dies scheint nicht zu fangen nichts - auch nicht die Allgemeine Ausnahme.

Dieses Problem tritt nicht beim ausführen der Konsolenanwendung. Der build-Pfad für dies umfasst die folgenden Inhalte sun\jwsdp-2.0\jaxb\lib:

jaxb-api.jar
jsr173_1.0_api.jar
jaxb-impl.jar

Habe ich Hinzugefügt, werden diese zu den lib-Ordner in das WEB-INF-Datei des dynamischen Projekt.

Mir läuft der webservice in JBuilder 2008 R2 und mit SOAPUI, um die Anfrage - dies verweist auf die wsdl generiert beim erstellen des webservice.

Wenn jemand keine Hilfe oder Ideen, wie dieses Problem zu lösen, könnten Sie bitte Antwort - danke für die Zeit nehmen diesen Beitrag zu Lesen!

Das SOAP-fault zeigt einen Fehler auf dem server, eine, die nicht behandelt werden und ordnungsgemäß gemeldet. Es kann verursacht werden, indem Sie etwas falsch in Ihrem Antrag, aber ohne eine richtige Fehlermeldung, es gibt keinen Weg, wenn Sie sagen, was es ist.
Haben Sie jemals Ihr Problem lösen?

InformationsquelleAutor Damian | 2010-06-08

Schreibe einen Kommentar