2013-07-19 33 views
2

我在angularjs和新泽西,我需要在写我的HelloWorld REST应用的一点帮助......如何写一个REST应用与AngularJs和球衣

这里是我的球衣

@Path("/helloworld") 
public class HelloWorldResource { 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayHello(){ 
     return "Hello Jersey World"; 
    } 
} 

这里是我的控制器客户端angularJS

angular.module('myApp', ['serverApp']); 

angular.module('serverApp',['ngResource']).factory('servercom', function($resource){ 
    return $resource('http://192.168.2.60\\:8080/RestExample/helloworld/', {}, 
      {query: {method:'GET', params:{}, isArray:false}}); 
}); 

function MyController($scope, servercom){ 

    $scope.temp = servercom.get(); 
    $scope.text = $scope.temp.name; 
} 

现在的问题是,当我通过浏览器,它返回字符串和一切正常访问我的REST服务......但是当我尝试访问它THROU GH AngularJS我的球衣得到以下信息:

com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes 信息:找不到类java.lang.String

JAX-B元素

所以我的球衣(或角度)代码有什么问题?

回答

3

AngularJs预计JSON将从您的资源返回,但实际上它返回的是一个简单的字符串,可能是一个问题。

在上面的代码,尝试从资源方法返回一个简单的JSON,像

return "{\"name\":\"Hello Jersey World\"}"; 

,并添加“应用/ JSON”到可生产媒体类型

@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN}) 

然而,我建议切换到Jersey 2.0(请参阅user guide)并查看在前端实际使用AngularJs的bean validation example

+0

感谢米哈尔...我想你说的是什么,但问题仍然在这里......我jqeury试图代替角度和它的运作良好..我不知道是什么问题:( – zhozhe