Tomee不使用MySQL DataSource
我正在使用Apache-Tomee-Webprofile-9.0.0-M7尝试进入JSF。为此,我决定调整焊接JSF“登录”示例。我决定要做的第一件事是将持久性与MySQL联系起来。这是容器可以看到的数据源:
02-Jul-2022 18:42:08.123 INFO [main] org.apache.openejb.config.AutoConfig.processResourceRef Auto-linking resource-ref 'openejb/Resource/jdbc/MySqlDS' in bean weld-login.Comp387377349 to Resource(id=weld-login/jdbc/MySqlDS)
但是这是使用的方法 - 尝试使用HSQL(至少我认为这就是这意味着):
02-Jul-2022 18:42:55.464 INFO [http-nio-8080-exec-5] null.openjpa.Runtime Starting OpenJPA 3.1.2
02-Jul-2022 18:42:55.568 INFO [http-nio-8080-exec-5] null.openjpa.jdbc.JDBC Using dictionary class "org.apache.openjpa.jdbc.sql.HSQLDictionary" (HSQL Database Engine 2.3.2 ,HSQL Database Engine Driver 2.3.2).
02-Jul-2022 18:42:55.590 INFO [http-nio-8080-exec-5] null.openjpa.jdbc.JDBC Connected to HSQL Database Engine version 2.3 using JDBC driver HSQL Database Engine Driver version 2.3.2.
这是我所做的配置。我想念什么? ($ catalina_home/conf/context.xml)
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Resource name="jdbc/MySqlDS" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="goose" password="xxx" driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://nucsrv.home:3306/weldcdi"/>
</Context>
(/meta-inf/.persistence.xml)
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="loginDatabase">
<!--
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
-->
<jta-data-source>jdbc/MySqlDS</jta-data-source>
<properties>
<!--
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<property name="hibernate.show_sql" value="false"/>
-->
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://nucsrv.home/weldcdi"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect" />
<property name="javax.persistence.jdbc.user" value="goose"/>
<property name="javax.persistence.jdbc.password" value="xxx"/>
<property name="hibernate.show_sql" value = "true" />
<property name="hibernate.format_sql" value = "true" />
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
I'm using apache-tomee-webprofile-9.0.0-M7 to try to get into JSF. To that end, I decided to adapt the Weld JSF "login" example. The first thing that I decided to do is to connect persistence to MySql. Here is the datasource being seen by the container:
02-Jul-2022 18:42:08.123 INFO [main] org.apache.openejb.config.AutoConfig.processResourceRef Auto-linking resource-ref 'openejb/Resource/jdbc/MySqlDS' in bean weld-login.Comp387377349 to Resource(id=weld-login/jdbc/MySqlDS)
But here is what gets used - attempting to use HSQL (at least I assume that's what this means):
02-Jul-2022 18:42:55.464 INFO [http-nio-8080-exec-5] null.openjpa.Runtime Starting OpenJPA 3.1.2
02-Jul-2022 18:42:55.568 INFO [http-nio-8080-exec-5] null.openjpa.jdbc.JDBC Using dictionary class "org.apache.openjpa.jdbc.sql.HSQLDictionary" (HSQL Database Engine 2.3.2 ,HSQL Database Engine Driver 2.3.2).
02-Jul-2022 18:42:55.590 INFO [http-nio-8080-exec-5] null.openjpa.jdbc.JDBC Connected to HSQL Database Engine version 2.3 using JDBC driver HSQL Database Engine Driver version 2.3.2.
This is the configuration as far as I've done it. What am I missing?
($CATALINA_HOME/conf/context.xml)
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Resource name="jdbc/MySqlDS" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="goose" password="xxx" driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://nucsrv.home:3306/weldcdi"/>
</Context>
(/META-INF/.persistence.xml)
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="loginDatabase">
<!--
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
-->
<jta-data-source>jdbc/MySqlDS</jta-data-source>
<properties>
<!--
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<property name="hibernate.show_sql" value="false"/>
-->
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://nucsrv.home/weldcdi"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect" />
<property name="javax.persistence.jdbc.user" value="goose"/>
<property name="javax.persistence.jdbc.password" value="xxx"/>
<property name="hibernate.show_sql" value = "true" />
<property name="hibernate.format_sql" value = "true" />
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
似乎您已设置属性
名称
,而不是资源中的ID
。应为:示例取自 apache tomee tomee指南。
It seems like you've set the attribute
name
and notid
in the Resource. Should be:Example taken from the Apache TomEE guide.