2010-07-31 2 views
2

Я должен использовать JPA проект на одном из моих проектов, но я имею эту ошибку когда я создаю EntityManager и вызвать persistencecontect в моем SessionBean:проблемы ссылкой JPA

@Stateless 
public class Biblio implements BiblioLocal { 
@PersistenceContext(unitName="BiblioJPA") 
private EntityManager em; 
    /** 
    * Default constructor. 
    */ 
    public Biblio() { 
     // TODO Auto-generated constructor stub 
    } 

@Override 
public String succes() { 
    // TODO Auto-generated method stub 
    return " beta"; 
} 
public void toevoegenBoek(){ 
    Boeken boek = new Boeken(); 
    boek.setTitel("harry P."); 
    boek.setAuteur("rowling"); 
    em.persist(boek); 
} 

} 

Моего сервлета (который вызывает метод из этого сеанса) больше не загружается и дает мне эту очень длинную ошибку, о которой я ничего не понимаю. Есть идеи? (без entityManager и persistencecontext мой сервлет действительно загружается, но тогда я не могу вызвать какие-либо функции, связанные с jpa!)

Спасибо!

Я получаю ошибку при запуске сервлет:

javax.servlet.ServletException: Error instantiating servlet class servlets.BiblioServlet 
    org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
    org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    java.lang.Thread.run(Unknown Source) 


root cause 

java.lang.RuntimeException: Unable to inject jndi dependency: env/servlets.BiblioServlet/biblio into property servlets.BiblioServlet.biblio: BiblioEAR not bound 
    org.jboss.injection.JndiPropertyInjector.lookup(JndiPropertyInjector.java:82) 
    org.jboss.injection.JndiPropertyInjector.inject(JndiPropertyInjector.java:99) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.processInjectors(TomcatInjectionContainer.java:366) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:271) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:265) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:256) 
    org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
    org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    java.lang.Thread.run(Unknown Source) 


root cause 

javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: BiblioEAR not bound] 
    org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1352) 
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:817) 
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686) 
    org.jboss.ejb3.JndiUtil.lookup(JndiUtil.java:44) 
    org.jboss.injection.JndiPropertyInjector.lookup(JndiPropertyInjector.java:75) 
    org.jboss.injection.JndiPropertyInjector.inject(JndiPropertyInjector.java:99) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.processInjectors(TomcatInjectionContainer.java:366) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:271) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:265) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:256) 
    org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
    org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    java.lang.Thread.run(Unknown Source) 


root cause 

javax.naming.NameNotFoundException: BiblioEAR not bound 
    org.jnp.server.NamingServer.getBinding(NamingServer.java:771) 
    org.jnp.server.NamingServer.getBinding(NamingServer.java:779) 
    org.jnp.server.NamingServer.getObject(NamingServer.java:785) 
    org.jnp.server.NamingServer.lookup(NamingServer.java:396) 
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726) 
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686) 
    javax.naming.InitialContext.lookup(Unknown Source) 
    org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1346) 
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:817) 
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686) 
    org.jboss.ejb3.JndiUtil.lookup(JndiUtil.java:44) 
    org.jboss.injection.JndiPropertyInjector.lookup(JndiPropertyInjector.java:75) 
    org.jboss.injection.JndiPropertyInjector.inject(JndiPropertyInjector.java:99) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.processInjectors(TomcatInjectionContainer.java:366) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:271) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:265) 
    org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:256) 
    org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
    org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    java.lang.Thread.run(Unknown Source) 

Ошибка в моей консоли (в затмении)

DEPLOYMENTS MISSING DEPENDENCIES: 
    Deployment "jboss.j2ee:ear=BiblioEAR.ear,jar=BiblioEJB.jar,name=Biblio,service=EJB3" is missing the following dependencies: 
    Dependency "<UNKNOWN jboss.j2ee:ear=BiblioEAR.ear,jar=BiblioEJB.jar,name=Biblio,service=EJB3>" (should be in state "Described", but is actually in state "** UNRESOLVED Demands 'persistence.unit:unitName=BiblioEAR.ear/BiblioJPA.jar#BiblioJPA' **") 
    Deployment "jboss.j2ee:ear=BiblioEAR.ear,jar=BiblioEJB.jar,name=Biblio,service=EJB3_endpoint" is missing the following dependencies: 
    Dependency "jboss.j2ee:ear=BiblioEAR.ear,jar=BiblioEJB.jar,name=Biblio,service=EJB3" (should be in state "Configured", but is actually in state "PreInstall") 

DEPLOYMENTS IN ERROR: 
    Deployment "persistence.unit:unitName=BiblioEAR.ear/BiblioJPA.jar#BiblioJPA" is in error due to the following reason(s): org.xml.sax.SAXParseException: cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'entity-mappings' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'. 
    Deployment "<UNKNOWN jboss.j2ee:ear=BiblioEAR.ear,jar=BiblioEJB.jar,name=Biblio,service=EJB3>" is in error due to the following reason(s): ** UNRESOLVED Demands 'persistence.unit:unitName=BiblioEAR.ear/BiblioJPA.jar#BiblioJPA' ** 

Edit:

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="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 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="BiblioJPA" transaction-type="JTA"> 
     <jta-data-source>java:/MySqlDSAlfa</jta-data-source> 
    </persistence-unit> 
</persistence> 

mysql-ds. XML

<datasources> 
    <local-tx-datasource> 
    <jndi-name>MySqlDSAlfa</jndi-name> 
    <connection-url>jdbc:mysql://localhost:8080/database</connection-url> 
    <driver-class>com.mysql.jdbc.Driver</driver-class> 
    <user-name>root</user-name> 
    <password></password> 
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 
    <metadata> 
     <type-mapping>mySQL</type-mapping> 
    </metadata> 
    </local-tx-datasource> 
</datasources> 

ответ

0

Я отказался от Eclipse galileo, и он начал работать, я не знаю, в чем проблема, но это исправило это для меня.

0

Ну, это выглядит как проблема поиска JDNI ("JPA не в состоянии для поиска источника данных").

Не могли бы вы предоставить persistence.xml и файлы конфигурации xxx-ds.xml.


Хорошо, теперь, эта ошибка выглядит странно (с выхода консоли):

org.xml.sax.SAXParseException: cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'entity-mappings' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'.

Кажется, вы используете Object/Relational Mapping файлов, и я боюсь, что вы столкнулись HHH-5310, которые в настоящее время не исправлена. Можете ли вы обойтись без файлов сопоставления объектов/реляционных карт?

+0

Эй, я чувствую себя очень глупо, но кажется, что вы были правы, и я была опечатка в моем имени базы данных в моем файле MySQL-ds.xml. (теперь это исправлено, имя действительно «база данных»). Однако он все еще не работает, поэтому я обновляю свое сообщение об ошибке, а также добавляю файлы xml. Спасибо за помощь! – networkprofile

+0

@Sled: Добро пожаловать. Но вы действительно обновили сообщение об ошибке? –

+0

Эй, да, я сделал (это ошибка, которую я сейчас получаю, и «JPA не может найти источник данных»). Я также добавил ошибку консоли. – networkprofile

-1
+0

Добро пожаловать на SO. Хотя это правильный способ использования гиперссылок на другой веб-сайт, вы должны по крайней мере включить найденное там решение (менее подробно, если хотите) и некоторые подробности о веб-сайте (что это такое, в каком сообщении или комментировать решение и т. д.). Вы можете использовать ссылку редактирования под своим сообщением, чтобы изменить ее и добавить дополнительную информацию по мере необходимости. Я также предлагаю вам ознакомиться с нашими часто задаваемыми вопросами: http://stackoverflow.com/faq - Удачи! – ForceMagic

Смежные вопросы