Hallo!
bin gerade dabei ein webservice mit hilfe von jaxm zu erstellen, doch irgendwie will es noch nicht so wie ich!
mein service sieht so aus:
Code
package at.lfrz.jaxmtest;
import org.apache.log4j.Logger;
import javax.xml.messaging.JAXMServlet;
import javax.xml.messaging.ReqRespListener;
import javax.xml.soap.SOAPMessage;
public class JAXMTest extends JAXMServlet implements ReqRespListener
{
private static final Logger logger = Logger.getLogger(JAXMTest.class);
public SOAPMessage onMessage(SOAPMessage soapMessage)
{
logger.debug("received SOAP Message");
System.out.println("msg");
return soapMessage;
}
}
Alles anzeigen
der deployment descriptor:
XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "[url='http://java.sun.com/dtd/web-app_2_3.dtd']http://java.sun.com/dtd/web-app_2_3.dtd[/url]">
<web-app>
<servlet>
<servlet-name>jaxmtest</servlet-name>
<servlet-class>at.lfrz.jaxmtest.JAXMTest</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jaxmtest</servlet-name>
<url-pattern>/jaxmtest</url-pattern>
</servlet-mapping>
</web-app>
Alles anzeigen
das deployen funktioniert(ins webapps verzeichnis des tomcats stellen, im tomcatmanager wird die appl angezeigt)!
aufruf des service:
Code
package at.lfrz.replication;
import javax.xml.messaging.URLEndpoint;
import javax.xml.soap.*;
public class JavaUpdater
{
public static void main(String args[])
{
URLEndpoint endpoint = new URLEndpoint("[url='http://localhost/JAXMTest/jaxmtest']http://localhost/JAXMTest/jaxmtest[/url]");
try
{
SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection conn = scf.createConnection();
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage msg = mf.createMessage();
SOAPPart soapPart = msg.getSOAPPart();
SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
SOAPBody body = envelope.getBody();
Object reply = conn.call(msg, endpoint);
System.out.println("Response from Server:" + reply.toString());
System.out.println();
}
catch (Throwable e)
{
e.printStackTrace();
}
}
}
Alles anzeigen
wenn ich diesen aufruf aus meiner entwicklungsumgebung starte, bekomme ich folgende fehlermeldung:
Code
29.09.2005 09:17:43 com.sun.xml.messaging.saaj.soap.MessageImpl identifyContentType
SCHWERWIEGEND: SAAJ0537: Ungültiger Inhaltstyp. Könnte eine Fehlermeldung sein anstelle einer SOAP-Meldung
29.09.2005 09:17:43 com.sun.xml.messaging.saaj.soap.MessageImpl <init>
SCHWERWIEGEND: SAAJ0535: Meldung kann nicht internalisiert werden
com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:127)
at at.lfrz.replication.JavaUpdater.main(JavaUpdater.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Caused by: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:121)
... 6 more
Alles anzeigen
kann mir jemand helfen?