【发布时间】:2015-09-18 06:03:16
【问题描述】:
我是 Java EE 开发的新手。我创建了一个新的企业应用程序项目,其中包含两个模块: TestDbEJB 和 TestDbWeb。
在 TestDbEJB 中,我创建了一个包 book,其中包含两个类 Book 和 BookManager。以下代码如下:
图书
package book;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Book {
private int isbn;
private String title;
@Id
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
BookManager.java
package book;
import java.sql.*;
import java.util.ArrayList;
public class BookManager {
String url = "jdbc:mysql://localhost:3306/Esd";
String user = "root";
String password = "root";
public int createBook(int isbn, String title) throws SQLException, ClassNotFoundException{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password);
String insert = "INSERT INTO book VALUES (?,?)";
PreparedStatement ptt = con.prepareStatement(insert);
ptt.setInt(1, isbn);
ptt.setString(2, title);
int ins = ptt.executeUpdate();
con.close();
ptt.close();
return ins;
}
public ArrayList<Book> getAllBooks() throws SQLException, ClassNotFoundException{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password);
String sqlSelect = "SELECT * from book";
Statement stt = con.createStatement();
ResultSet rs = stt.executeQuery(sqlSelect);
ArrayList<Book> Books = new ArrayList<Book>();
while(rs.next()){
int isbn = rs.getInt("isbn");
String title = rs.getString("title");
Book b1 = new Book();
b1.setIsbn(isbn);
b1.setTitle(title);
Books.add(b1);
}
con.close();
stt.close();
rs.close();
return Books;
}
}
现在在我的 TestDbWeb 中,我创建了一个 JSP 文件 - addBook.jsp。
addBook.jsp
<jsp:useBean id = "bm" class="book.BookManager" scope="session"/>
<%
try{
int isbn = Integer.parseInt(request.getParameter("isbn"));
String title = request.getParameter("title");
bm.createBook(isbn, title);
}catch(Exception e){
}
%>
<h1> Welcome to ABC Library</h1>
<form>
<table>
<tr>
<td> Enter Details </td>
<td><input type="text" name="isbn"></td>
<td><input type="text" name="isbn"></td>
<td><input type="submit" name="add" value="add"></td>
</tr>
</table>
</form>
现在真正的问题是,当我运行应用程序时,会显示一个对话框并显示以下错误:
无法部署 TestDb 部署失败=部署期间发生错误:部署应用程序时出现异常 [TestDb]:无效的 ejb jar [TestDbEJB.jar]:它包含零个 ejb。
注意:
有效的 ejb jar 至少需要一个会话、实体(1.x/2.x 样式)或消息驱动 bean。
EJB3 实体 bean (@Entity) 是 POJO,请将它们打包为库 jar。
如果 jar 文件包含使用 EJB 组件级别注解(@Stateless、@Stateful、@MessageDriven、@Singleton)注解的有效 EJB,请检查 server.log 以查看注解是否被正确处理。有关详细信息,请参阅 server.log。
或出现此错误: 无法部署 TestDb 部署失败=名称为 [TestDb] 的应用程序未部署
还请注意,以前,当上述错误未显示时。但在我的浏览器上,我收到错误“找不到资源”
非常感谢您的帮助。由于我在谷歌上的搜索并没有帮助我自己解决这个问题。谢谢和问候..
【问题讨论】:
标签: java jsp jakarta-ee jdbc glassfish