请教,EJB3部署出错[AbstractKernelController] Error installing to Parse

yingzihack 2012-08-17 04:08:00
说一下,我很菜,刚刚学EJB,勿鄙视,嘿嘿,谢了

先贴代码吧
/EJB3Project/src/META-INF/persistence.xml 这个基本都是拷别人的

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:persistence="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd"
version="1.0">

<persistence-unit name="EJBProject">
<jta-data-source>java:MSSQLDS</jta-data-source>
<!-- <jta-data-source>java:/MSSQLDS</jta-data-source> 这样写也试过,不解决遇到的问题-->
<class>com.hitachi.ejb3.entity.Person</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="show_sql">true</property>
<property name="hibernate.format_sql">true</property>
</properties>
</persistence-unit>
</persistence>




然后是java代码

1.测试类

package com.hitachi.ejb3.client;


import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.hitachi.ejb3.entity.Person;
import com.hitachi.ejb3.service.PersonService;

public class EjbClient {

/**
* @param args
*/
public static void main(String[] args) {
// Properties p = new Properties();
// p.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
// p.setProperty("java.naming.provider.url", "localhost:1099");
try {
InitialContext ic = new InitialContext();
PersonService hw = (PersonService) ic.lookup("OnePersonService/remote");
Person person = new Person();
hw.save(person);
} catch (NamingException e) {
e.printStackTrace();
}
}

}



2.service /EJB3Project/src/com/hitachi/ejb3/service/impl/OnePersonService.java 这个就没什么逻辑,直接掉DAO层的,应该不是这的问题吧?

package com.hitachi.ejb3.service.impl;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.hitachi.ejb3.dao.PersonDAO;
import com.hitachi.ejb3.entity.Person;
import com.hitachi.ejb3.service.PersonService;

/**
* 业务处理Bean
* @author ccli
*
*/
@Stateless
@Remote(PersonService.class)
public class OnePersonService implements PersonService {
private String DAOStr = "OnePersonDAO/local";//此处以后可以写在配置文件中,实现扩展性

private PersonDAO pd = null;//可以给一个默认的对象


//真心不知道能不能用构造方法过去一个本地无状态Bean,原理还是模糊的啊,要错就这了,那怎么改呢?
public OnePersonService() {//对象初始化时,就把要使用到的EJB获取到
try {
InitialContext ic = new InitialContext();
this.pd = (PersonDAO)ic.lookup(DAOStr);
} catch (NamingException e) {
e.printStackTrace();
}
}

public void save(Person person) {
//这里写业务处理,安全验证
pd.save(person);
}

public void update(Person person) {
//这里写业务处理,安全验证
pd.update(person);
}

public void delete(int personId) {
//这里写业务处理,安全验证
pd.delete(personId);
}

public Person getPersonById(int personId) {
//这里写业务处理,安全验证
return pd.getPersonById(personId);
}

public List<Person> getPerson() {
//这里写业务处理,安全验证
return pd.getPerson();
}

}



3.DAO层的java /EJB3Project/src/com/hitachi/ejb3/dao/impl/OnePersonDAO.java
 
package com.hitachi.ejb3.dao.impl;

import java.util.List;

import javax.ejb.Local;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.hitachi.ejb3.dao.PersonDAO;
import com.hitachi.ejb3.entity.Person;

@Stateless
@Local(PersonDAO.class)
public class OnePersonDAO implements PersonDAO {
@PersistenceContext(unitName="EJBProject") EntityManager em;

public void save(Person person) {
em.persist(person);
System.out.println("Save OK!");
}

@Override
public void update(Person person) {
em.merge(person);
}

@Override
public void delete(int personId) {
em.remove(em.getReference(Person.class, personId));
}

@Override
public Person getPersonById(int personId) {
//em.find(Person.class, personId);
return em.find(Person.class, personId);
}

@Override
@SuppressWarnings("unchecked")
public List<Person> getPerson() {
//em.createQuery("select o from Person o").getResultList();
return em.createQuery("select o from Person o").getResultList();
}

}



4.实体类 /EJB3Project/src/com/hitachi/ejb3/entity/Person.java

package com.hitachi.ejb3.entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table
public class Person implements Serializable{

private static final long serialVersionUID = 2261947076112663148L;
private int id;
private String name;
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (id != other.id)
return false;
return true;
}

}


太长了,不让发,晕,接二楼
...全文
284 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingzihack 2012-08-17
  • 打赏
  • 举报
回复
顶置、顶置、人工顶置
yingzihack 2012-08-17
  • 打赏
  • 举报
回复
没人吗,。各位,帮帮忙啊
yingzihack 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
还有两个接口,就不不用贴了

最后是异常输出

Java code


15:27:17,535 ERROR [AbstractKernelController] Error installing to Parse: name=vfszip:/D:/jboss5/server/default/deploy/EntityPersistenceText.jar state=Not Ins……
[/Quote]
我把项目用到的类打包成EntityPersistenceText.jar发布到JBOOS5里的了 才出的错
  • 打赏
  • 举报
回复
EntityPersistenceText.jar
没这个包
yingzihack 2012-08-17
  • 打赏
  • 举报
回复


还有两个接口,就不不用贴了

最后是异常输出

15:27:17,535 ERROR [AbstractKernelController] Error installing to Parse: name=vfszip:/D:/jboss5/server/default/deploy/EntityPersistenceText.jar state=Not Installed mode=Manual requiredState=Parse
org.jboss.deployers.spi.DeploymentException: Error creating managed object for vfszip:/D:/jboss5/server/default/deploy/EntityPersistenceText.jar
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:337)
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:297)
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:269)
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.deploy(AbstractParsingDeployerWithOutput.java:230)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:290)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:221)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: Failed to resolve schema nsURI= location=persistence
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:203)
at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:199)
at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:170)
at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:132)
at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:118)
at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:188)
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:323)
... 27 more
Caused by: org.jboss.xb.binding.JBossXBRuntimeException: Failed to resolve schema nsURI= location=persistence
at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:313)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:401)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:199)
... 35 more
15:27:17,536 WARN [HDScanner] Failed to process changes
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):

*** CONTEXTS IN ERROR: Name -> Error

vfszip:/D:/jboss5/server/default/deploy/EntityPersistenceText.jar -> org.jboss.xb.binding.JBossXBRuntimeException: Failed to resolve schema nsURI= location=persistence


at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:863)
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:665)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:293)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:221)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)




好就这些了,各位帮看一下我哪儿弄错了。先谢谢啦!

67,513

社区成员

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

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