JiveJdon Community Forums
在线453人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 2 回复 / 1
 发表新帖子   回复该主题贴
MafiaCat

悄悄话
发表文章: 2
注册时间: 2003年06月19日 22:41
请好心人一定帮忙看下jboss+mysql测试一个entitybean倒底错误在哪? 2003年06月20日 00:01 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
请大家帮忙看下我的jboss+mysql测试一个entitybean倒底错误在哪?

偶改了个JBOSS练习书里一个entity bean来测试。

这是StudentBean建一个最最简单的表,带有id,name,email。
默认用jboss内建的数据库Hypersonic
在 <datasource>java:/DefaultDS</datasource>
<type-mapping>Hypersonic SQL</type-mapping>
<debug>false</debug>
完全可以正确完成。信息如下:

17:46:21,796 INFO [MainDeployer] Starting deployment of package: file:/D:/jboss/server/default/deploy/test.jar
17:46:21,812 INFO [EJBDeployer] looking for nested deployments in : file:/D:/jboss/server/default/deploy/test.jar
17:46:22,546 INFO [EjbModule] Creating
17:46:22,593 INFO [EjbModule] Deploying StudentEJB
17:46:22,843 INFO [EntityContainer] Creating
17:46:22,859 INFO [EntityInstancePool] Creating
17:46:22,859 INFO [EntityInstancePool] Created
17:46:22,875 INFO [EntityContainer] Created
17:46:22,875 INFO [EjbModule] Created
17:46:22,890 INFO [EjbModule] Starting
17:46:22,890 INFO [EntityContainer] Starting
17:46:25,234 INFO [StudentEJB] Created table 'STUDENTEJB' successfully.
17:46:25,265 INFO [EntityInstancePool] Starting
17:46:25,265 INFO [EntityInstancePool] Started
17:46:25,281 INFO [EntityContainer] Started
17:46:25,281 INFO [EjbModule] Started
17:46:25,312 INFO [MainDeployer] Deployed package: file:/D:/jboss/server/default/deploy/test.jar

***************************************************
***************************************************

但是把D:\jboss\server\default\conf下的2个文件standardjaws.xml
standardjbosscmp-jdbc.xml如下修改:

<datasource>java:/MySqlDS</datasource>
<type-mapping>mySQL</type-mapping>


并且把D:\jboss\server\default\deploy下的mysql-ds.xml设置成:

<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://192.168.0.1:3306/test_db</connection-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<user-name>test</user-name>
<password>test</password>
</local-tx-datasource>

</datasources>

然后测试是否能在mysql上建表时缺就出错如下:

17:58:40,906 INFO [MainDeployer] Starting deployment of package: file:/D:/jboss/server/default/deploy/test.jar
17:58:40,937 INFO [EJBDeployer] looking for nested deployments in : file:/D:/jboss/server/default/deploy/test.jar
17:58:41,593 INFO [EjbModule] Creating
17:58:41,625 INFO [EjbModule] Deploying StudentEJB
17:58:41,953 INFO [EntityContainer] Creating
17:58:41,953 INFO [EntityInstancePool] Creating
17:58:41,953 INFO [EntityInstancePool] Created
17:58:42,000 INFO [EntityContainer] Created
17:58:42,000 INFO [EjbModule] Created
17:58:42,000 INFO [EjbModule] Starting
17:58:42,000 INFO [EntityContainer] Starting
17:58:43,218 ERROR [EntityContainer] Starting failed
java.lang.NullPointerException
at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeFactory.createTypeSimple(JDBCTypeFactory.java:115)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeFactory.getJDBCType(JDBCTypeFactory.java:77)
at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.<init>(JDBCAbstractCMPFieldBridge.java:71)

**********************************************************

偶把具体bean的代码,script的设置贴下面,大家帮忙看看到底错哪里?

使用:
jboss-3.2.1_tomcat-4.1.24
DS:mysql-4.0.12-win
JDBC:mysql-connector-java-3.0.8-stable-bin.jar

*******************************
StudentBean.java
package test.ejb;

import javax.ejb.*;
import java.rmi.*;

public abstract class StudentBean
implements javax.ejb.EntityBean
{

public Integer EJBCreate(Integer id) throws CreateException
{
this.setId(id);
return null; // TODO is this right!?
}
public void EJBPostCreate(Integer id)
{
}

public abstract void setId(Integer id);
public abstract Integer getId();

public abstract void setName(String name);
public abstract String getName();

public abstract void setEmail(String email);
public abstract String getEmail();

public void setEntityContext(EntityContext ctx)
{
// Not implemented.
}
public void unsetEntityContext()
{
// Not implemented.
}
public void EJBActivate()
{
// Not implemented.
}
public void EJBPassivate()
{
// Not implemented.
}
public void EJBLoad()
{
// Not implemented.
}
public void EJBStore()
{
// Not implemented.
}
public void EJBRemove()
{
// Not implemented.
}
}
************************************

************************************
StudentHomeRemote.java

package test.ejb;

import javax.ejb.*;
import java.rmi.*;

public interface StudentHomeRemote extends javax.ejb.EJBHome
{
public StudentRemote create(Integer id)
throws CreateException, RemoteException;

public StudentRemote findByPrimaryKey(Integer pk)
throws FinderException, RemoteException;
}
*********************************************

*********************************************
StudentRemote.java

package test.ejb;

import javax.ejb.EJBObject;
import java.rmi.*;

public interface StudentRemote extends javax.ejb.EJBObject
{
public String getName() throws RemoteException;
public void setName(String str) throws RemoteException;

public String getEmail() throws RemoteException;
public void setEmail(String str) throws RemoteException;
}

****************************************+

下面开始是scripts

**************************************************
ejb-jar.xml:

<?xml version="1.0"?>

<!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>
<enterprise-beans>
<entity>
<ejb-name>StudentEJB</ejb-name>
<home>test.ejb.StudentHomeRemote</home>
<remote>test.ejb.StudentRemote</remote>
<ejb-class>test.ejb.StudentBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Student</abstract-schema-name>
<cmp-field><field-name>id</field-name></cmp-field>
<cmp-field><field-name>name</field-name></cmp-field>
<cmp-field><field-name>email</field-name></cmp-field>
<primkey-field>id</primkey-field>
<security-identity><use-caller-identity/></security-identity>
</entity>
</enterprise-beans>

<assembly-descriptor>
<security-role>
<description>
This role represents everyone who is allowed full access to the Student EJB.
</description>
<role-name>everyone</role-name>
</security-role>
<method-permission>
<role-name>everyone</role-name>
<method>
<ejb-name>StudentEJB</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>

<container-transaction>
<method>
<ejb-name>StudentEJB</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>

</assembly-descriptor>
</ejb-jar>

*****************************************************
*****************************************************

jboss.xml:

<?xml version="1.0"?>

<jboss>
<secure>false</secure>
<container-configurations />
<resource-managers />
<enterprise-beans>
<entity>
<ejb-name>StudentEJB</ejb-name>
<jndi-name>StudentHomeRemote</jndi-name>
</entity>
</enterprise-beans>
</jboss>

***********************************************
***********************************************
jbosscmp-jdbc.xml:

<jbosscmp-jdbc>

<datasource>java:/MySqlDS</datasource>
<type-mapping>mySQL</type-mapping>

<enterprise-beans>
<entity>
<ejb-name>StudentEJB</ejb-name>
<table-name>student</table-name>
<create-table>false</create-table>
<cmp-field>
<field-name>id</field-name>
<column-name>id</column-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>name</column-name>
</cmp-field>
<cmp-field>
<field-name>email</field-name>
<column-name>email</column-name>
</cmp-field>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>

*****************************************+
******************************************

jd2bs

悄悄话
发表文章: 16
注册时间: 2002年08月16日 10:00
Re: 请好心人一定帮忙看下jboss+mysql测试一个entitybean倒底错误在哪? 2003年06月22日 15:41 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
艾,我的问题几乎跟你相同.折腾两天了,没戏.
我是jboss3.0.7+eclipse+lomboz+mysql3.23.x

3.21里是mysql-ds.xml啊,我是mysql-service.xml

我按照banq推荐的文章配置,就是告诉我数据源找不到.
都快吐血了.
我在csdn的类似问题
bad_bird

悄悄话
发表文章: 24
注册时间: 2002年11月18日 15:02
Re: 请好心人一定帮忙看下jboss+mysql测试一个entitybean倒底错误在哪? 2003年06月23日 11:30 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
个人感觉应该是在几个配置文件中配置出错了。
尤其是conf下的两个文件,都是配置在各个数据库中,数据库变量类型所对应的java数据类型,最好不要改name标签的默认值。
应该不是程序的问题。
这个主题有 2 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam