0

当我尝试从 Netbeans(JavaEE5 示例)部署 bookstore1 Web 应用程序时,我已将 persistence.xml 文件更改为使用休眠:

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="book" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/jdbc/BookDB</jta-data-source>
    <class>com.sun.bookstore.database.Book</class>
 </persistence-unit>
</persistence>

我的mysql-ds.xml文件是:

<?xml version="1.0" encoding="UTF-8"?>
<datasources> 
    <local-tx-datasource> 
        <jndi-name>jdbc/BookDB</jndi-name> 
        <connection-url>jdbc:mysql://localhost:3306/bookdb</connection-url> 
        <driver-class>com.mysql.jdbc.Driver</driver-class> 
        <user-name>root</user-name> 
        <password>1234</password> 
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
            <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
    </local-tx-datasource> 
</datasources>

我收到以下错误:

[STDOUT] 无法创建书店数据库 bean:null
19:16:53,846 INFO [[/bookstore1]] 将 servlet ShowCartServlet 标记为不可用
19:16:53,846 错误 [[ShowCartServlet]] 为 servlet ShowCartServlet 分配异常
javax.servlet.UnavailableException:无法获取数据库。
        在 com.sun.bookstore1.servlets.ShowCartServlet.init(ShowCartServlet.java:39)
        在 javax.servlet.GenericServlet.init(GenericServlet.java:212)
        在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        在 org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
        在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
        在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        在 org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
        在 org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        在 org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
        在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
        在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
        在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        在 java.lang.Thread.run(Thread.java:619)
19:17:17,534 INFO [[ShowCartServlet]] Servlet ShowCartServlet 当前不可用

你能告诉我我哪里做错了吗...

4

1 回答 1

1

JBoss 4.0.x 不是 JavaEE5 应用服务器,它太旧了——它只支持 J2EE 1.4

这可能不是问题(从您提供给我们的信息中无法判断),但是继续使用 JavaEE5 示例和 JBoss 4.0.x 是没有意义的,它只是行不通。

您要么需要使用 J2EE 1.4 示例应用程序,要么升级您的 JBoss(到版本 5 或 6)。

于 2011-07-03T14:13:40.060 回答