2014-02-21 96 views
0

我不能讓我的Ajax帖子與Resteasy一起工作。我在java中沒有錯誤,但在瀏覽器中我得到這個:Resteasy Ajax POST調用

event.returnValue is deprecated. Please use the standard event.preventDefault() instead. 
OPTIONS https://localhost:8081/TestResteasy/rest/servlet/post 

有誰能告訴我我做錯了什麼? 如果我直接鍵入鏈接,該服務工作得很好。

JS文件

$(document).ready(function() { 
$("button").click(function() { 
    var dataT = { 
     "name" : "Daniel", 
     "password" : "1234" 
    }; 

    $.ajax({ 
     type : "POST", 
     data : JSON.stringify(dataT), 
     dataType : "json", 
     contentType : "application/json", 
     url : "https://localhost:8081/TestResteasy/rest/servlet/post", 
     success : function(data) { 
      alert(data); 
     } 
    }); 
}); 

});

的web.xml

<?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" 
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>JAXRS-RESTEasy</display-name> 

<servlet-mapping> 
    <servlet-name>resteasy-servlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

<!-- Auto scan REST service --> 
<context-param> 
    <param-name>resteasy.scan</param-name> 
    <param-value>true</param-value> 
</context-param> 

<!-- this should be the same URL pattern as the servlet-mapping property --> 
<context-param> 
    <param-name>resteasy.servlet.mapping.prefix</param-name> 
    <param-value>/rest</param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 
     </listener-class> 
</listener> 

<servlet> 
    <servlet-name>resteasy-servlet</servlet-name> 
    <servlet-class> 
     org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
    </servlet-class> 
</servlet> 

服務

@Path("/servlet") 
public class RESTEasyHelloWorldService { 

@GET 
@Path("/get/{pathParameter}") 
public Response responseMsg(
     @PathParam("pathParameter") String pathParameter, 
     @DefaultValue("Nothing to say") @QueryParam("queryParameter") String queryParameter) { 

    String response = "Hello from: " + pathParameter + " : " 
      + queryParameter; 

    return Response.status(200).entity(response).build(); 
} 

@POST 
@Path("/post") 
@Consumes("application/json") 
public Response createProductInJSON(Product product) { 

    String result = "Product created : " + product.getName(); 
    System.out.println(product.getName()); 
    return Response.status(201).entity(result).build(); 

} 

}

對象

package com.javacodegeeks.enterprise.rest.domain; 

public class Product { 

String name; 
String password; 

public Product(String name, String password) { 
    this.name = name; 
    this.password = password; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

@Override 
public String toString() { 
    return "Product [name=" + name + ", qty=" + password + "]"; 
} 

}

的pom.xml

<dependencies> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxrs</artifactId> 
     <version>3.0.4.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jackson-provider</artifactId> 
     <version>3.0.2.Final</version> 
    </dependency> 
</dependencies> 
+0

您是否試過其他瀏覽器?你在哪裏部署/運行與JavaScript的網頁? Chrome瀏覽器不會在本地主機上運行JavaScript,Firefox也可以。 –

+0

我試過在Firefox上。同樣的問題。沒有任何反應 – user2837742

+0

嘗試在ajax調用中使用http而不是https。您是否測試了服務方法?例如,使用Chrome的REST控制檯插件。 –

回答

0

對不起已故的答覆,但可能這將是未來其他

第1步幫助:添加的RESTEasy JSAPI

<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-jsapi</artifactId> 
    <version>2.3.1.GA</version> 
</dependency> 
的運行時支持

步驟2:在web.xml中添加JSAPI servlet映射

<servlet> 
<servlet-name>RESTEasy JSAPI</servlet-name> 
<servlet-class>org.jboss.resteasy.jsapi.JSAPIServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
<servlet-name>RESTEasy JSAPI</servlet-name> 
<url-pattern>/rest-js</url-pattern> 
</servlet-mapping> 
for more detail kindly visit the link 

http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide/html/AJAX_Client.html