ich auf Azure ein problemloses bin mit Servlet-Container Tomcat mit der Bereitstellung. Ich stelle eine Verbindung zum erstellten Web-App-Bereich mit FTP her und kopiere die Datei war
in den richtigen Ordner.Unterschied bei der Bereitstellung von Java-Web-Anwendung und Web-Service auf Azure Tomcat
myWebApp
ich erfolgreich ein Spring MVC einfache Web-Anwendung auf Azure bereitgestellt haben. Das URL-Muster ist unten und die beide wie erwartet:
http://myWebApp.azurewebsites.net/myWebApp
Eingesetzt auf Azure Tomcathttp://localhost:8080/myWebApp
auf lokales Tomcat Eingesetzte
Die Schlüsseldatei ist web.xml
unter:
<web-app ... xsd schemas ... >
<display-name>myWebApp</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>... not important ...</context-param>
<listener>... not important ...</listener>
</web-app>
myWebService
Nun, das Problem kommt, wenn ich einen einfachen Web-Service auf die gleiche Weise bereitstellen und seinen Inhalt sehen möchte.
Ich habe beschlossen, jersey
Bibliothek zu verwenden. Hier ist die einzige Probe Klasse:
@Path("Sample")
public class Sample {
@GET
@Path("/")
@Produces(MediaType.TEXT_XML)
public String Method() {
return "<tag>" + 123 + "</tag>";
}
}
Nach clean install
und läuft auf lokalen Tomcat-Server auf URL http://localhost:8080/myWebService/Sample
, es gibt mir richtig die XML-<tag>123</tag>"
.
Ich hoffentlich auf Azure auf die gleiche Weise wie die vorherige myWebApp bereitgestellt und versucht, auf der URL http://myWebService.azurewebsites.net/myWebService
laufen. Es gab mir stattdessen den 404
Fehler und sagte, dass die angeforderte Ressource nicht verfügbar ist.
Hier ist die web.xml
sicher:
<web-app ... xsd schemas ... >
<display-name>myWebService</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>nch.webservices</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Was bin ich fehlt und ich falsch gemacht? Ich habe den Unterschied zwischen den beiden web.xml
Dateien in url-pattern
bemerkt, dass:
- myWebApp verwendet
/
- MyWebService verwendet
/*
Als ich <url-pattern>/</url-pattern>
auf MyWebService verwenden, dann ist es entweder funktioniert nicht auf localhost. Danke für die Hilfe. Fühlen Sie sich frei, nach mehr Informationen zu fragen (wollte die Frage so kurz wie möglich machen).
Dies ist ein Problem über path.1.Please zeigen mir die Zeile " ", die in Ihrem Azure-Tomcat/conf/server.xml.2 gefunden werden kann. Lassen Sie mich Ihr Projekt kennen Kontextwurzel, die in Ihrer IDE gefunden werden kann.Right Klicken Sie auf Ihr Projekt --- Eigenschaften --- Web Project Settings.3. Wie viele Ordner befinden sich in Ihrem Azure Tomcat/Webapps Verzeichnis? Sind sie ROOT und myWebApp? –
Romeo