2015-10-07 3 views
1

Я пытаюсь добавить datasource в веб-проект, однако что-то кажется неправильным.Wildfly MySQL JSF не подключается

Конфигурация кажется прекрасной, но при попытке доступа к хранилищу данных возникает поток ошибок.

Конфигурация:

module.xml

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="com.mysql"> 
<resources> 
    <resource-root path="mysql-connector.jar"/> 
</resources> 
<dependencies> 
    <module name="javax.api"/> 
    <module name="javax.transaction.api"/> 
</dependencies> 

standalone.xml

<subsystem xmlns="urn:jboss:domain:datasources:3.0"> 
     <datasources> 
      <datasource jndi-name="java:/jdbc/jstore" pool-name="jstore" enabled="true" use-java-context="true"> 
       <connection-url>jdbc:mysql://localhost:3306/jstore</connection-url> 
       <driver>mysql</driver> 
       <security> 
        <user-name>root</user-name> 
        <password>secret</password> 
       </security> 
      </datasource> 
      <drivers> 
       <driver name="mysql" module="com.mysql"> 
        <driver-class>com.mysql.jdbc.Driver</driver-class> 
       </driver> 
       <driver name="h2" module="com.h2database.h2"> 
        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
       </driver> 
      </drivers> 
     </datasources> 
    </subsystem> 

Это бин пытается получить доступ к хранилищу:

@ManagedBean(name = "home", eager = true) 
public class HomeBean implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @Resource(lookup = "java:/jdbc/jstore") 
    private DataSource ds; 

    private String greeting; 

    public HomeBean() { 
     greeting = "Welcome"; 
     ConnInfo(); 
    } 

    public String getGreeting() { 
     return this.greeting; 
    } 

    public void ConnInfo() { 
     try { 
      Connection con = ds.getConnection(); 
      con.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Проблема заключается в том, что ресурс с именем: java:/jdbc/jstore не может быть найден, потому что когда он пытается связать исключение нулевого указателя, он будет выброшен.

Я нахожусь в конце моей веревки и действительно ищу какую-то помощь.

Редактировать

Я использую:

  • Wildfly 9.0.1.Final
  • MySql 14,14

трассировки стека:

16:32:22,267 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (default task-2) Error Rendering View[/index.xhtml]: javax.el.ELException: /index.xhtml: Cant instantiate class: com.store.HomeBean. 
    at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:90) 
    at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82) 
    at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:655) 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86) 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72) 
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: com.store.HomeBean. 
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:191) 
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:100) 
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409) 
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269) 
    at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:257) 
    at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:117) 
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) 
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) 
    at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116) 
    at com.sun.el.parser.AstValue.getBase(AstValue.java:151) 
    at com.sun.el.parser.AstValue.getValue(AstValue.java:200) 
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226) 
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) 
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) 
    at com.sun.faces.facelets.el.ELText$ELTextVariable.writeText(ELText.java:238) 
    at com.sun.faces.facelets.el.ELText$ELTextComposite.writeText(ELText.java:154) 
    at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:85) 
    ... 38 more 
Caused by: java.lang.NullPointerException 
    at com.store.HomeBean.ConnInfo(HomeBean.java:33) 
    at com.store.HomeBean.<init>(HomeBean.java:24) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at java.lang.Class.newInstance(Class.java:442) 
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:186) 
    ... 54 more 

16:32:22,274 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /WebStoreIntro/: javax.servlet.ServletException: Cant instantiate class: com.store.HomeBean. 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:667) 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86) 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72) 
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: com.store.HomeBean. 
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:191) 
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:100) 
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409) 
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269) 
    at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:257) 
    at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:117) 
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) 
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) 
    at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116) 
    at com.sun.el.parser.AstValue.getBase(AstValue.java:151) 
    at com.sun.el.parser.AstValue.getValue(AstValue.java:200) 
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226) 
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) 
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) 
    at com.sun.faces.facelets.el.ELText$ELTextVariable.writeText(ELText.java:238) 
    at com.sun.faces.facelets.el.ELText$ELTextComposite.writeText(ELText.java:154) 
    at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:85) 
    at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82) 
    at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:655) 
    ... 27 more 
Caused by: java.lang.NullPointerException 
    at com.store.HomeBean.ConnInfo(HomeBean.java:33) 
    at com.store.HomeBean.<init>(HomeBean.java:24) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at java.lang.Class.newInstance(Class.java:442) 
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:186) 
    ... 54 more 
+0

Есть ли ошибки во время запуска? –

+0

Нет. Ошибки появляются только после обращения к источнику данных. Это сообщение регистрируется на консоли: '(поток службы MSC 1-4) WFLYJCA0001: Связанный источник данных [java:/jdbc/jstore]', что заставляет меня думать, что источник данных зарегистрирован правильно. – Warosaurus

+0

На самом деле трассировка стека тоже может помочь. –

ответ

1

Вы можете» t доступ к инъекции urces в вашем конструкторе. Инъекции происходят после того, как объект, HomeBean в вашем случае, построен.

Вам нужно использовать @PostConstruct, если вам нужно инициализировать что-либо после строительства.

+0

Отлично! Спасибо огромное! – Warosaurus

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