REST适用于某些计算机

时间:2016-10-20 10:11:44

标签: rest maven java-ee glassfish

这真的令人困惑,我有一个可以在某些计算机上运行的休息服务,但拒绝在其他计算机上工作,不明白为什么。

该项目正在使用Maven,EJB和glassfish

这是休息服务:

@Path("/")
public class ArticleService {

@EJB
private LocalArticle articleEJB;

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("article/{articleId}")
public Article getArticleXML(@PathParam("articleId") int id) {  
    return articleEJB.getArticleById(id);
}

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("article/{articleId}")
public Article getArticleJSON(@PathParam("articleId") int id) {
    return articleEJB.getArticleById(id);
}
}

返回值是一个对象,如果我改为返回article.getName,我得到200响应,但是如果我尝试返回整个对象,我得到500

这是一个休息管理课程(我不知道这是做什么的,我从一本书中得到了一个例子):

@ApplicationPath("rest")
public class ArticleMgmtRESTApplication extends ResourceConfig {

    public ArticleMgmtRESTApplication () {
        packages("se.alager.rest.ws.services");
    }
}
}

以下是相关文章:

@Entity
@NamedQueries({
    @NamedQuery(name="Article.findAll", query="SELECT a FROM Article a"),
    @NamedQuery(name="Article.findById", query="SELECT a FROM Article a  WHERE a.id = :id")
})
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Article implements Serializable {
private static final long serialVersionUID = 1L;

    @Id
    @Column(name="id_article")
    @XmlAttribute
    private int id;
    private int amount;
    private String description;
    private String name;
}

这段确切的代码对于朋友来说是完美无缺的,但我似乎无法将其付诸实践,为什么会有任何想法?

这是错误的Glassfish日志(还有大约500行日志,我希望这是相关的,我不知道我在这里做什么)

[2016-10-20T16:31:44.140+0200] [glassfish 4.1]
[INFO] [] [org.jboss.weld.Bootstrap]
[tid: _ThreadID=142 _ThreadName=admin-listener(7)] [timeMillis: 1476973904140] 
[levelValue: 800] [[
WELD-000119: Not generating any bean definitions from 
org.glassfish.jersey.server.internal.inject.ParamConverters$CharacterProvider
because of underlying class loading error: Type [unknown] not found. 
If this is unexpected, enable DEBUG logging to see the full error.]]

[2016-10-20T16:31:45.000+0200] [glassfish 4.1] [INFO] [] 
[org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer] 
[tid: _ThreadID=142 _ThreadName=admin-listener(7)] [timeMillis: 1476973905000] 
[levelValue: 800] [[
Registering the Jersey servlet application, named 
se.alager.rest.ws.ManagementRESTApplication, 
at the servlet mapping /rest/*, with the Application class of the same name.]]

0 个答案:

没有答案