接上帖!
09. Room2.java 的内容。
package s31;import javax.ejb.EJBLocalObject;public interface Room2
extends EJBLocalObject {
public void setName(String name); public String getName(); public void setCapacity(String capacity); public String getCapacity();
}
-------------------------------------- end: 09. Room2.java 的内容。10. Room2Bean.java 的内容。
package s31;import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.CreateException;
import javax.ejb.RemoveException;public abstract class Room2Bean
implements EntityBean {
EntityContext entityContext;
public Object ejbCreate(String capacity) throws CreateException {
setCapacity(capacity);
return null;
} public void ejbPostCreate(String capacity) throws CreateException {
} public void ejbRemove() throws RemoveException {
} public abstract void setName(String name); public abstract String getName(); public abstract void setCapacity(String capacity); public abstract String getCapacity(); public void ejbLoad() {
} public void ejbStore() {
} public void ejbActivate() {
} public void ejbPassivate() {
} public void unsetEntityContext() {
this.entityContext = null;
} public void setEntityContext(EntityContext entityContext) {
this.entityContext = entityContext;
}
}
-------------------------------------- end: 10. Room2Bean.java 的内容。11. Room2Home.java 的内容。
package s31;import javax.ejb.EJBLocalHome;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import java.util.Collection;public interface Room2Home
extends EJBLocalHome {
public Room2 create(String capacity) throws CreateException; public Room2 findByPrimaryKey(Object pk) throws FinderException; public Collection findAll() throws FinderException;
}
-------------------------------------- end: 11. Room2Home.java 的内容。12. Room2Remote.java 的内容。
package s31;import javax.ejb.EJBObject;
import java.rmi.RemoteException;public interface Room2Remote
extends EJBObject {
public void setName(String name) throws RemoteException; public String getName() throws RemoteException; public void setCapacity(String capacity) throws RemoteException; public String getCapacity() throws RemoteException;
}
-------------------------------------- end: 12. Room2Remote.java 的内容。13. Room2RemoteHome.java 的内容。
package s31;import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import java.util.Collection;public interface Room2RemoteHome
extends EJBHome {
public Room2Remote create(String capacity) throws CreateException, RemoteException; public Room2Remote findByPrimaryKey(Object pk) throws FinderException,
RemoteException; public Collection findAll() throws FinderException, RemoteException;
}
-------------------------------------- end: 13. Room2RemoteHome.java 的内容。帖子已经全部贴出。
09. Room2.java 的内容。
package s31;import javax.ejb.EJBLocalObject;public interface Room2
extends EJBLocalObject {
public void setName(String name); public String getName(); public void setCapacity(String capacity); public String getCapacity();
}
-------------------------------------- end: 09. Room2.java 的内容。10. Room2Bean.java 的内容。
package s31;import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.CreateException;
import javax.ejb.RemoveException;public abstract class Room2Bean
implements EntityBean {
EntityContext entityContext;
public Object ejbCreate(String capacity) throws CreateException {
setCapacity(capacity);
return null;
} public void ejbPostCreate(String capacity) throws CreateException {
} public void ejbRemove() throws RemoveException {
} public abstract void setName(String name); public abstract String getName(); public abstract void setCapacity(String capacity); public abstract String getCapacity(); public void ejbLoad() {
} public void ejbStore() {
} public void ejbActivate() {
} public void ejbPassivate() {
} public void unsetEntityContext() {
this.entityContext = null;
} public void setEntityContext(EntityContext entityContext) {
this.entityContext = entityContext;
}
}
-------------------------------------- end: 10. Room2Bean.java 的内容。11. Room2Home.java 的内容。
package s31;import javax.ejb.EJBLocalHome;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import java.util.Collection;public interface Room2Home
extends EJBLocalHome {
public Room2 create(String capacity) throws CreateException; public Room2 findByPrimaryKey(Object pk) throws FinderException; public Collection findAll() throws FinderException;
}
-------------------------------------- end: 11. Room2Home.java 的内容。12. Room2Remote.java 的内容。
package s31;import javax.ejb.EJBObject;
import java.rmi.RemoteException;public interface Room2Remote
extends EJBObject {
public void setName(String name) throws RemoteException; public String getName() throws RemoteException; public void setCapacity(String capacity) throws RemoteException; public String getCapacity() throws RemoteException;
}
-------------------------------------- end: 12. Room2Remote.java 的内容。13. Room2RemoteHome.java 的内容。
package s31;import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import java.util.Collection;public interface Room2RemoteHome
extends EJBHome {
public Room2Remote create(String capacity) throws CreateException, RemoteException; public Room2Remote findByPrimaryKey(Object pk) throws FinderException,
RemoteException; public Collection findAll() throws FinderException, RemoteException;
}
-------------------------------------- end: 13. Room2RemoteHome.java 的内容。帖子已经全部贴出。
解决方案 »
- 关于html转pdf所遇到的一系列问题,求解答
- 关于一个程序监控功能的实现想来寻找一些思路或灵感
- 请高手解答,太大意了
- ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed
- JESS入门
- 新鸟问个弱弱的问题..关于XFire+Spring构建Web Service问题
- 求救 webservice客户端问题..
- HQL
- webservice的一个问题?请大家帮帮忙.1
- .NET程序员有问题问各位J二EE的兄弟姐妹们:...
- WAS5.1下创建EJB时抛org.omg.CORBA.TRANSIENT异常
- 请教Javamail发送效率
01) 开发环境。
02) jboss 中 mssql-ds.xml 的设置。
03) jboss 中 mssql-xs-ds.xml 的设置。
04) 工程 s31 中 ApplicationModule_s31.ear 文件包含的内容。
05) ApplicationModule_s31.ear 文件中 EJBModule_s31.jar 文件包含的内容。
06) EJBModule_s31.jar 文件中 s31 包含的内容。
07) DataSource_s39 在 ejb-modeler-schema.xml 的定义。
08) jboss 输出的 error,共7处。
09) Room2.java 的内容。
10) Room2Bean.java 的内容。
11) Room2Home.java 的内容。
12) Room2Remote.java 的内容。
13) Room2RemoteHome.java 的内容。错误信息在 08) 中。
不过我觉得你在其中定义datasource为DataSource_s39
而jboss中定义数据源为MYSQLDS肯定有问题啊,好几个错都是无法绑定DataSource_s39
你不妨试一下将DataSource_s39改为MYSQLDS试试我现在用jbosscmp-jdbc.xml定义数据源:
<defaults>
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle9i</datasource-mapping>
<create-table>true</create-table>
<remove-table>false</remove-table>
<read-only>false</read-only>
<time-out>300</time-out>
<pk-constraint>true</pk-constraint>
<fk-constraint>false</fk-constraint>
<row-locking>false</row-locking>
<preferred-relation-mapping>foreign-key</preferred-relation-mapping>
<read-ahead>
<strategy>on-load</strategy>
<page-size>1000</page-size>
<eager-load-group>*</eager-load-group>
</read-ahead>
<list-cache-max>1000</list-cache-max>
</defaults>
然后在JBOSS的deploy目录下修改oracle-ds.xml文件就行了
上面的行不同你不妨试试这个,感觉你的问题不是很难
因为没有用过java,临时到书店去买的书,到明天刚好2周。按照书上的例子做了一遍,jsp都出来了,但就是不能查到db server上的数据。在网上找了些资料,说做成ear包后,jndi-definitions.xml文件才能够被包进去,然后DataSource才能被找到。
我用jbuilder2005自己成的文件,然后一个一个的检查,这才找到DataSource (应该是DataSource_31) ejb-modeler-schema.xml 的定义。
jbosscmp-jdbc.xml
我重新做一遍,试试看。
谢谢!
1. jbosscmp-jdbc.xml的内容。
<jbosscmp-jdbc>
<defaults>
<datasource>MYSQLDS</datasource>
<datasource-mapping>MS SQLSERVER</datasource-mapping>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>Room2</ejb-name>
<table-name>room_2</table-name>
<cmp-field>
<field-name>name</field-name>
<column-name>name</column-name>
</cmp-field>
<cmp-field>
<field-name>capacity</field-name>
<column-name>capacity</column-name>
</cmp-field>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>
-------------------------------------- end: 1. jbosscmp-jdbc.xml的内容。2. 错误比较。
上次s31的error_03:
----------------- error_03 begin: -----------------
2005-07-23 08:25:55,290 ERROR [org.jboss.ejb.EntityContainer] Starting failed
org.jboss.deployment.DeploymentException: Error: can't find data source: DataSource_s39; - nested throwable: (javax.naming.NameNotFoundException: DataSource_s39 not bound)
----------------- error_03 end: ----------------- 这次s32的error_03:
2005-07-23 13:13:32,411 ERROR [org.jboss.ejb.EntityContainer] Starting failed
org.jboss.deployment.DeploymentException: Error: can't find data source: MYSQLDS; - nested throwable: (javax.naming.NameNotFoundException: MYSQLDS not bound) 其它几处也是一样,仅仅换了个名字。DataSource_s39 --> MYSQLDS
-------------------------------------- end: 2. 错误比较。
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
参考jboss根目录/docs/examples/jca 下的mssql-ds.xml和mssql-xa-ds.xml
修改一下,jbosscmp-jdbc.xml中:
<defaults>
<datasource>MYSQLDS</datasource>
<datasource-mapping>MS SQLSERVER</datasource-mapping>
</defaults>
改为:
<defaults>
<datasource>MYSQLDS</datasource>
<datasource-mapping>MS SQLSERVER2000</datasource-mapping>
</defaults>
我用mysql数据库启动后会有:
15:30:17,039 INFO [WrapperDataSourceService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:name=MySqlDS,service=DataSourceBinding to JNDI name 'java:MySqlDS'
有错误的话贴上来看看
--------------------- fail:
2005-07-23 18:01:06,591 DEBUG [org.jboss.management.j2ee.factory.DefaultManagedObjectFactoryMap] Failed to find factory for event: javax.management.Notification[source=jboss.system:service=ServiceController,type= org.jboss.system.ServiceMBean.create,sequenceNumber=5,timeStamp=1122112866571,message=null,userData=jboss.system:type=Log4jService,service=Logging]2. jboss启动log中,MSSQLDS的最后一次出现。
--------------------- MSSQLDS
2005-07-23 18:01:31,687 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Started
2005-07-23 18:01:31,687 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.jca:service=LocalTxCM,name=MSSQLDS dependent components: []3. jboss启动log中,MSSQLXADS的最后一次出现。
--------------------- MSSQLXADS
2005-07-23 18:01:31,707 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Started
2005-07-23 18:01:31,707 DEBUG [org.jboss.system.ServiceController] Starting dependent components for: jboss.jca:service=XATxCM,name=MSSQLXADS dependent components: []4. mssql2000中文版,升级了sp3。
升级文件:chs_sql2ksp3.exe
<datasource>java:/+数据源 | java:comp/+数据源</datasource> 好像只用数据源不行 记得不清楚了,只是隐约的记忆,希望能帮上忙~
1. jbosscmp-jdbc.xml的内容。
<jbosscmp-jdbc>
<defaults>
<datasource>MYSQLDS</datasource>
<datasource-mapping>MS SQLSERVER</datasource-mapping>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>Room2</ejb-name>
<table-name>room_2</table-name>
<cmp-field>
<field-name>name</field-name>
<column-name>name</column-name>
</cmp-field>
<cmp-field>
<field-name>capacity</field-name>
<column-name>capacity</column-name>
</cmp-field>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>
-------------------------------------- end: 1. jbosscmp-jdbc.xml的内容。
<datasource>MYSQLDS</datasource> 这个地方只用数据源是不行的;必须加上java:\ 或者 java:cmp\ 我记得我这样处理后是可以的;不过是用JBuilder9的时候了,应该本质上不会变化的。
请这样试一下啊
但是,把Microsoft SQL Server 2000 Driver for JDBC改成jdbc-->odbc的桥时,用了java:/MYSQLDS后,Datasource的这个问题解决了。
现在,还有2个问题没有解决。分别是:----------------- error_01 begin: -----------------
2005-07-23 08:25:52,496 DEBUG [org.jboss.management.j2ee.factory.DefaultManagedObjectFactoryMap] Failed to find factory for event: javax.management.Notification[source=jboss.system:service=ServiceController,type= org.jboss.system.ServiceMBean.create,sequenceNumber=86,timeStamp=1122078352496,message=null,userData=jboss.j2ee:jndiName=Room2Remote,service=EJB]
----------------- error_01 end: ---------------------------------- error_02 begin: -----------------
2005-07-23 21:33:54,691 ERROR [org.jboss.ejb.EjbModule] Initialization failed
javax.management.InstanceAlreadyExistsException: jboss.j2ee:jndiName=Room2Remote,service=EJB already registered.
----------------- error_02 end: -----------------
采用 crazycy(代言人) 的办法,问题没有得到解决。
刚才是2个工程同时放在jboss中测试,而且2个ejb对象名一样。因为第2个ejb对象未能创建,故没有DataSource错误出现。
虽然问题没有得到解决,我仍然感谢大家的帮助。谢谢!
谢谢!
你把两个工程同时部署当然不行啦,他们都会向jndi server注册信息
当第二个ejb向jndi server注册第一个ejb已经注册的jndi名字会报
javax.management.InstanceAlreadyExistsException: jboss.j2ee:jndiName=Room2Remote,service=EJB already registered.
DEBUG不算错把,你在试试
用odbc桥效率会降低啊,数据库我只用过oracle和mysql没用过sqlserver
不知道合适的驱动版本。
不知道问题在哪,加 java:/ 或者是 java:cmp/ 都不行。
debug 不算错误,但是 fail 或者 error 就是错误了。
jdbc-->odbc桥确实会降低效率,但我在记事本中编辑的java程序就可以查mssql2000的数据。走mssql driver for java效率是高,可在记事本中编辑的java程序却查不到数据,而且我也不知道需要加入哪些包。
在jbuilder2005中,jdbc-->odbc桥、mssql driver for java 我都能够查数据,就是jboss中出问题。
晚上00:00结贴。因为问题没有解决,所以1000分没法送出。进来回帖的都有分。
谢谢!
1. yingtju(蚂蚁) 和 crazycy(代言人) 2人都提出了解决办法,所以2人平分赠送的1000分。
2. hygx(寒夜孤星) 的答案正确,但是未提出解决办法,所以得10分。
3. 赠送分数的操作未找到,请知道的给予指导。
最后谢谢大家的帮助!