2017-05-29 63 views
0

我创建了一个使用NetBeans创建一个来自数据库的实体类和使用jpa的实体类的宁静的web服务,但我现在使用tomcat作为我的服务器现在的post方法不会插入下面的json到数据库,但是当我使用glassfish作为我的服务器它的作品。你认为我错过了任何依赖关系吗?我怎样才能模仿玻璃鱼?使用tomcat服务器创建了一个宁静的webservice

我试图插入

{ 
"acceptedGender":"both", 
"price":123123.00, 
"type":"apartment" 
"vacantNum":13, 
"hadID":4 
} 

我有以下的依存关系:
的JavaEE-API-7.0.jar
javax.ejb-api.jar中
使用mysql-connector-java的5.1。 42 bin.jar

@POST 
@Override 
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
public void create(Students entity) { 
    super.create(entity); 
}` 

private static final long serialVersionUID = 1L; 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Basic(optional = false) 
@Column(name = "hatID") 
private Integer hatID; 
@Basic(optional = false) 
@Column(name = "type") 
private String type; 
@Basic(optional = false) 
@Column(name = "acceptedGender") 
private String acceptedGender; 
@Basic(optional = false) 
@Column(name = "vacantNum") 
private int vacantNum; 
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields 
consider using these annotations to enforce field validation 
@Basic(optional = false) 
@Column(name = "price") 
private BigDecimal price; 
// @OneToMany(cascade = CascadeType.ALL, mappedBy = "hatID") 
// private Collection<Reservation> reservationCollection; 
@JoinColumn(name = "hadID", referencedColumnName = "hadID") 
@ManyToOne(optional = false) 
private HaDetails hadID; 

public HaTypes(Integer hatID, String type, String acceptedGender, int 
vacantNum, BigDecimal price) { 
    this.hatID = hatID; 
    this.type = type; 
    this.acceptedGender = acceptedGender; 
    this.vacantNum = vacantNum; 
    this.price = price;` 

或者,如果你没有解决我的问题,除了aws(没有时间研究docker),openshift和jelastic可以轻松地在云上部署glassfish restful webservice,你能推荐任何提供者吗?

+1

任何错误消息的任何地方? – Jan

+0

@Jan没有任何错误消息,它只是它不会在数据库中插入值,但是当我使用glassfish它将值插入数据库使用相同的代码 – Christian

+0

你检查了catalina.out?如果它没有插入数据库,也许你的数据库连接没有建立 - 如何正确设置这将在glassfish和tomcat之间有所不同 – Jan

回答

0

Glassfish是一款应用服务器,因此它支持开箱即用的JAX-RS。 Tomcat只是一个Web容器,您无法部署JAX-RS应用程序并使其不需要自己进行布线(请参阅:In which container do JAX-RS web services run?)。

如果您想在tomcat中运行Jersey服务器,您需要在应用程序的部署描述符中配置它。 你可以看到以下职位的答案,如果你需要的细节: