jboss中EJB关联时出错,请大家指点一下.

dengxiaoqiang 2004-08-24 03:16:00
ejb-jar.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar >

<description><![CDATA[No Description.]]></description>
<display-name>Generated by XDoclet</display-name>

<enterprise-beans>
<entity >
<description><![CDATA[<!-- begin-user-doc --> You can insert your documentation for '<em><b>EnglishBean</b></em>'.]]></description>

<ejb-name>English</ejb-name>

<home>com.zzcq.deng.EnglishHome</home>
<remote>com.zzcq.deng.English</remote>
<local-home>com.zzcq.deng.EnglishLocalHome</local-home>
<local>com.zzcq.deng.EnglishLocal</local>

<ejb-class>com.zzcq.deng.EnglishCMP</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>englishTable</abstract-schema-name>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field userId Returns the userId]]></description>
<field-name>userId</field-name>
</cmp-field>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field english Returns the english]]></description>
<field-name>english</field-name>
</cmp-field>
<primkey-field>userId</primkey-field>

<query>
<query-method>
<method-name>findAll</method-name>
<method-params>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM englishTable as a]]></ejb-ql>
</query>
</entity>

<entity >
<description><![CDATA[<!-- begin-user-doc --> You can insert your documentation for '<em><b>StudentBean</b></em>'.]]></description>

<ejb-name>Student</ejb-name>

<home>com.zzcq.deng.StudentHome</home>
<remote>com.zzcq.deng.Student</remote>
<local-home>com.zzcq.deng.StudentLocalHome</local-home>
<local>com.zzcq.deng.StudentLocal</local>

<ejb-class>com.zzcq.deng.StudentCMP</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>studentTable</abstract-schema-name>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field userId Returns the userId]]></description>
<field-name>userId</field-name>
</cmp-field>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field userName Returns the userName]]></description>
<field-name>userName</field-name>
</cmp-field>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field sex Returns the sex]]></description>
<field-name>sex</field-name>
</cmp-field>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field age Returns the age]]></description>
<field-name>age</field-name>
</cmp-field>
<cmp-field >
<description><![CDATA[<!-- begin-user-doc --> CMP Field balance Returns the balance]]></description>
<field-name>balance</field-name>
</cmp-field>
<primkey-field>userId</primkey-field>

<query>
<query-method>
<method-name>findAll</method-name>
<method-params>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM studentTable as a]]></ejb-ql>
</query>
<!-- Write a file named ejb-finders-StudentBean.xml if you want to define extra finders. -->
</entity>



</enterprise-beans>

<relationships>
<ejb-relation>
<ejb-relation-name>Student-Address</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Customer-has-a-Address</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>Student</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>english</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>English-belongs-to-Customer</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>English</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
</relationships>
<assembly-descriptor >
</assembly-descriptor>

</ejb-jar>

我有两个BEAN 建立的是单向联结, 一个是Student Bean 一个是English Bean Student Bean有接口StudentLocal StudentLocalHome和StudentCMP ,English Bean有接口EnglishLocal,EnglishLocalHome和EnglishCMP ,写了关系后,我在StudentLocal ,StudentCMP 增加了EnglishLocal getEnglish()和setEnglish(EnglishLocal english)打包运行时错,错误提示:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]列
名 'english' 无效。
客户端代码如下:
try{
InitialContext ctx = new InitialContext();
Object result = ctx.lookup("StudentLocal");
StudentLocalHome home =(StudentLocalHome)result ;
StudentLocal student = home.findByPrimaryKey("1");
out.println(student.getUserId());
out.println(student.getSex());
//out.println(student.getEnglishTableLocal().toString());


}
catch (Exception ex)
{
out.println(ex.toString());
}


...全文
100 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeshucheng 2004-08-31
  • 打赏
  • 举报
回复
呵呵,weblogic在ejb的关联上目前还是属于比较强大的,在jboss上是会存在一定的问题。
其实写也是可以的,不过很麻烦(sessionbean)中
drogwu 2004-08-24
  • 打赏
  • 举报
回复
在jboss下可能会出错,但如果是在weblogic下应该是没问题的,我才做了的。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧