我正在尝试部署我的J2EE应用程序。在我的应用程序中,我使用了CMP,因此需要jbosscmp-jdbc.xml文件。 Howerver,当我尝试在Jboss中部署我的应用程序时,我得到了以下例外:
org.jboss.deployment.DeploymentException: Invalid XML:....
!/META-INF/jbosscmp-jdbc.xml; - nested throwable:
....
The content of element type "entity" must match "(ejb-name,datasource?,datasource-mapping?,create-table?,remove-table?,post-table-create?,read-only?,read-time-out?,row-locking?,pk-constraint?,read-ahead?,list-cache-max?,clean-read-ahead-on-load?,fetch-size?,table-name?,cmp-field*,load-groups?,eager-load-group?,lazy-load-groups?,query*,unknown-pk?,entity-command?,optimistic-locking?,audit?)".)
.......
Caused by: org.xml.sax.SAXParseException: The content of element type "entity" must match "....
以下是jbosscmp-jdbc.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC
"-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd" >
<jbosscmp-jdbc>
<defaults>
<datasource>Java:/BeansDemoDB</datasource>
<datasource-mapping>MS SQLSERVER</datasource-mapping>
<create-table>false</create-table>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>TUsers</ejb-name>
<table-name>T_Users</table-name>
<cmp-field>
<field-name>username</field-name>
<column-name>username</column-name>
</cmp-field>
<cmp-field>
<field-name>password</field-name>
<column-name>password</column-name>
</cmp-field>
<cmp-field>
<field-name>role</field-name>
<column-name>role</column-name>
</cmp-field>
</entity>
<entity>
<ejb-name>TStudents</ejb-name>
<table-name>T_Students</table-name>
<abstract-schema-name>TStudents</abstract-schema-name>
<cmp-field>
<field-name>studentID</field-name>
<column-name>studentID</column-name>
</cmp-field>
<cmp-field>
<field-name>studentName</field-name>
<column-name>studentName</column-name>
</cmp-field>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>
我曾尝试在Jboss 4和5中部署,但遇到了同样的错误。 试图谷歌这但没有运气。 我的jbosscmp-jdbc.xml出了什么问题?
答案 0 :(得分:0)
发现我jbosscmp-jdbc.xml
中的错误,
删除实体<abstract-schema-name>TStudents</abstract-schema-name>
中的元素TStudents
。
感谢所有人阅读我的问题。