Alistair87
Grünschnabel
Hallo Leute,
ich hoffe ihr könnt mir helfen.
Und zwar möchte ich gerne ein RESTful Webservice erstellen und diesen dann mit JQuery ansprechen. Das Informationen sollen mit JSON übermittelt werden.
Als Server benutze ich Tomcat v7.0.
Ich habe mir in Eclipse ein Dynamic Web Project angelegt.
Danach haben ich die Jersey Jar-Files in den Ordner WEB-INF/lib kopiert.
Zu Testzwecken habe ich mir zunächst nur eine Klasse erstellt:
Die web.xml Datei sieht so aus:
Wenn ich nun über den Webbrowser den URL http://localhost:8080/test/rest/test/json aufrufe bekomme ich die JSON übermittelt.
Allerdings möchte ich gerne die Informationen über JQuery anfordern.
Das ganze habe ich mit folgendem Code getestet:
Doch dort bekomme ich als Antwort nichts zurück bzw. die Funktion success wird gar nicht aufgerufen. Woran könnte das liegen? Was habe ich falsch gemacht? Oder muss ich noch irgendwas am Server machen?
Hoffe ihr könnt mir helfen.
MfG
Alistair
ich hoffe ihr könnt mir helfen.
Und zwar möchte ich gerne ein RESTful Webservice erstellen und diesen dann mit JQuery ansprechen. Das Informationen sollen mit JSON übermittelt werden.
Als Server benutze ich Tomcat v7.0.
Ich habe mir in Eclipse ein Dynamic Web Project angelegt.
Danach haben ich die Jersey Jar-Files in den Ordner WEB-INF/lib kopiert.
Zu Testzwecken habe ich mir zunächst nur eine Klasse erstellt:
Code:
package de.test.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/test")
public class TestREST
{
@GET
@Path("json")
@Produces(MediaType.APPLICATION_JSON)
public String test()
{
return "test123123123";
}
}
Die web.xml Datei sieht so aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID"
version="3.0">
<display-name>testrest</display-name>
<servlet>
<servlet-name>testrest</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>de.test.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testrest</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Wenn ich nun über den Webbrowser den URL http://localhost:8080/test/rest/test/json aufrufe bekomme ich die JSON übermittelt.
Allerdings möchte ich gerne die Informationen über JQuery anfordern.
Das ganze habe ich mit folgendem Code getestet:
Code:
$(document).ready(function(){
var url = '',
data = '';
url = 'http://localhost:8080/test/rest/test/json';
$.ajax({
url: url,
type: 'GET',
dataType: 'json',
success: function(data){
alert(data);
}
});
});
Doch dort bekomme ich als Antwort nichts zurück bzw. die Funktion success wird gar nicht aufgerufen. Woran könnte das liegen? Was habe ich falsch gemacht? Oder muss ich noch irgendwas am Server machen?
Hoffe ihr könnt mir helfen.
MfG
Alistair