Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich versuche mich gerade ein wenig an der Entwicklung von Webservices über Axis.
Wenn ich das Service direkt in der shell starte (jar-Files in den Classpath laden und dann java org.apache.axis.client.AdminClient deploy.wsdd) funktionierts auch.
Jetzt wollt ich das Setzen des Classpathes und den Aufruf direkt in Eclipse über Ant machen:
javax.xml.parsers.FactoryConfigurationError: Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl could not be instantiated: java.lang.NullPointerException
[code=Java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:180)[/quote]
Nach einigen Google-Recherchen hege ich die Vermutung, das es irgendeinen Konflikt mit der jaxp-Bibliothek gibt. Diese ist offensichtlich in Java 1.5 (Das ich verwende) inkludiert, aber scheinbar kommt Ant nicht mit dieser Version zurecht.
Eine jaxp.jar, die DocumentBuilderFactoryImpl beinhaltet konnte ich bis jetzt nicht finden. Die Versionen 1.3 und 1.4 enthalten nur eine Main.class.
Hat irgend jemand hier eine Idee wie ich diesen Fehler überwinden kann?
Danke im Vorraus
ws.servletpath muss auf die webapplikation zeigen. Heisst deine Web-Applikation z.B. myapp dann muss das Property gesetzt werden auf: myapp/services/AdminService
ansonsten seh ich eigentlich keinen Fehler
Sag bescheid wenn du es geschafft hast bzw. ein Fehler auftritt
Du wirst doch sicher im Tomcat deine Web-Applikation deployed haben. Dort müssen sich natürlich auch die axis Bibliotheken befinden. Im web.xml müssen die Servlets vom axis auch eingetragen sein. Im axis-Verzeichnis gibts eine webapp. Die kannst du einfach in den Tomcat kopieren, umbenennen die web.xml anpassen und deine Applikation ins lib Verzeichnis stellen. Bist du dir 100% sicher dass es von der command-line funktioniert hat? Hast du das Service nachher ansprechen können?
In der shell-Version hab ichs im Tomcat-Ordner (In webapps\axis\WEB-INF) gehabt, ja.
Aber auch da hab ich nichts mit der web.xml gemacht.
Ich hab mich dabei an diese Anleitung gehalten.
Ich hatte gehofft, dass Eclipse die Ordnerstruktur irgendwie seperieren kann.
Hier beschreibt der selbe Author die Entwicklung in Eclipse. Aber auch dabei startet er dann das Service in der shell und eben das wollte ich vermeiden.
Nun, ich kann dir nur sagen wie ich es bisher immer gemacht habe. Ich hab die relevaten java-Archive von axis (1.4) in meine WebApplikation übernommen und meine web.xml mit den Servlets von axis erweitert. Dafür sind folgende Einträge notwendig:
Code:
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>5</session-timeout>
</session-config>
<!-- currently the W3C havent settled on a media type for WSDL;
[url]http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft[/url]
for now we go with the basic 'it's XML' response -->
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
Soweit ich axis verstanden habe wird zum deployen eines WebService ein Servlet herangezogen. Dieses wird oben definiert. Bei mir hat es bis jetzt immer so funktioniert