已经检测ds.xml配置正确,datesource可以正常使用,抱错信息如下:
09:56:18,671 INFO  [Environment] Hibernate 3.2.4.sp1
09:56:18,687 INFO  [Environment] hibernate.properties not found
09:56:18,687 INFO  [Environment] Bytecode provider name : javassist
09:56:18,687 INFO  [Environment] using JDK 1.4 java.sql.Timestamp handling
09:56:18,875 INFO  [Ejb3Configuration] found EJB3 Entity bean: entity.Person
09:56:19,312 INFO  [Configuration] Reading mappings from resource : META-INF/orm
.xml
09:56:19,312 INFO  [Ejb3Configuration] [PersistenceUnit: foshanshop] no META-INF
/orm.xml found
09:56:19,421 INFO  [AnnotationBinder] Binding entity from annotated class: entit
y.Person
09:56:19,562 INFO  [EntityBinder] Bind entity entity.Person on table Person
09:56:19,906 INFO  [ConnectionProviderFactory] Initializing connection provider:
org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
09:56:19,906 INFO  [InjectedDataSourceConnectionProvider] Using provided datasou
rce
09:56:20,578 INFO  [SettingsFactory] RDBMS: Oracle, version: Oracle9i Enterprise
Edition Release 9.2.0.2.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining op
tions
JServer Release 9.2.0.2.0 - Production
09:56:20,578 INFO  [SettingsFactory] JDBC driver: Oracle JDBC driver, version: 9
.2.0.1.0
09:56:20,609 WARN  [ServiceController] Problem starting service persistence.unit
s:jar=ejbtest0904.jar,unitName=foshanshop
javax.persistence.PersistenceException: org.hibernate.HibernateException: unknow
n Oracle major version [0]
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:720)
        at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFa
ctory(HibernatePersistence.java:127)
        at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnit
Deployment.java:246)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
。。
09:56:20,750 INFO  [JmxKernelAbstraction] creating wrapper delegate for: org.jbo
ss.ejb3.stateless.StatelessContainer
09:56:20,750 INFO  [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=ejbte
st0904.jar,name=PersonDAOBean,service=EJB3 with dependencies:
09:56:20,750 INFO  [JmxKernelAbstraction]       persistence.units:jar=ejbtest090
4.jar,unitName=foshanshop
09:56:20,750 INFO  [EJB3Deployer] Deployed: file:/D:/jboss-4.2.1.GA/server/defau
lt/deploy/ejbtest0904.jar
09:56:20,968 INFO  [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../dep
loy/jmx-console.war/
09:56:21,156 ERROR [URLDeploymentScanner] Incomplete Deployment listing:--- MBeans waiting for other MBeans ---
ObjectName: persistence.units:jar=ejbtest0904.jar,unitName=foshanshop
  State: FAILED
  Reason: javax.persistence.PersistenceException: org.hibernate.HibernateExcepti
on: unknown Oracle major version [0]
  I Depend On:
    jboss.jca:service=DataSourceBinding,name=OracleDS
  Depends On Me:
    jboss.j2ee:jar=ejbtest0904.jar,name=PersonDAOBean,service=EJB3ObjectName: jboss.j2ee:jar=ejbtest0904.jar,name=PersonDAOBean,service=EJB3
  State: NOTYETINSTALLED
  I Depend On:
    persistence.units:jar=ejbtest0904.jar,unitName=foshanshop--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: persistence.units:jar=ejbtest0904.jar,unitName=foshanshop
  State: FAILED
  Reason: javax.persistence.PersistenceException: org.hibernate.HibernateExcepti
on: unknown Oracle major version [0]
  I Depend On:
    jboss.jca:service=DataSourceBinding,name=OracleDS
  Depends On Me:
    jboss.j2ee:jar=ejbtest0904.jar,name=PersonDAOBean,service=EJB3全部代码和配置文件,如下:
oracle-ds.xml
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<connection-url>jdbc:oracle:thin:@127.0.0.1:1521:sailor</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>test</user-name>
<password>test</password>
<SetBigStringTryClob>true</SetBigStringTryClob>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>persistence.xml
<persistence>
<persistence-unit name="foshanshop">
<jta-data-source>java:/OracleDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence>person.java
package entity;import java.io.Serializable;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;@SuppressWarnings("serial")
@Entity
@Table(name = "Person")public class Person implements Serializable {
private Integer peronid;
private String name;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getPeronid() {
return peronid;
}public void setPeronid(Integer peronid) {
this.peronid = peronid;
}
@Column(nullable=false,length=32)
public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}
}
PersonDAOBean.jsp
package entity;import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
@Remote({PersonDAO.class})
public class PersonDAOBean implements PersonDAO {@PersistenceContext(unitName="foshanshop")
protected EntityManager em;public boolean insertPerson(String name) {
//
try {
Person person = new Person();
person.setName(name);
em.persist(person);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}public String getPersonNameByID(int personid) {
Person person = em.find(Person.class,personid);
return person.getName();
}}