2017-05-29 64 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服務器,您需要在應用程序的部署描述符中配置它。 你可以看到以下職位的答案,如果你需要的細節: