我正试图通过Jersey在UI中显示简单的String
消息。
Web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Sapmle</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Controller.java
package org.it.bt;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/")
public class Controller {
@GET
@Path("/receive")
@Produces(MediaType.APPLICATION_JSON)
public String testApp() throws FileNotFoundException {
String x = "My name";
return x;
}
}
Controller.js
var app = angular.module("myApp", []);
app.controller('myController',[ '$scope', '$http', function($scope, $http){
$http.get('receive').success(function(res)
{
$scope.name = res;
}).error(function(error)
{
console.log(error);
});
}]);
的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Task</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"> </script>
<script type="text/javascript" src="Controller.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="myController">
<h1>{{ name }}</h1>
</div>
</body>
</html>
我已经包含以下罐子 -
asm-all-3.3.1
jersy-core-1.17.1
jersy-server-1.17.1
jersy-servlet-1.17.1
json-20090211
当我在tomcat中运行时,我没有得到任何异常并且不允许405
方法错误。我尝试评论角度$http
方法并运行,但我仍然得到相同的错误。
对此有何帮助?
答案 0 :(得分:0)
error 405表示调用了错误的方法。
请求资源不支持请求方法 ; ;例如,表单上的GET请求,要求通过POST显示数据,或者在只读资源上显示PUT请求。
在你的情况下你的后端(java)暴露了一个GET,但是从角度来看你正在调用一个POST。
纠正并重新测试。