2014-12-13 76 views
0

我試圖移植這個例子shiro-primefaces-example爲玻璃魚寫的,但我有數據源與trobles。這個例子有兩個配置文件:簡單登錄shiro wildfly jsf和primefaces

GlassFish的-web.xml中:

<glassfish-web-app error-url=""> 
<context-root>/shiro-primefaces-example</context-root> 
<resource-ref> 
<res-ref-name>jdbc/shiro-primefaces</res-ref-name> 
<jndi-name>java:app/jdbc/shiro-primefaces</jndi-name> 
</resource-ref> 
<class-loader delegate="false"/> 
<parameter-encoding default-charset="UTF-8"/> 
</glassfish-web-app> 

與GlassFish resources.xml中:

<resources> 

<jdbc-connection-pool name="pool/shiro-primefaces" 
datasource-classname="org.postgresql.ds.PGConnectionPoolDataSource" 
res-type="javax.sql.ConnectionPoolDataSource" 
steady-pool-size="5" 
pool-resize-quantity="1" 
max-pool-size="10"> 
<property name="serverName" value="localhost"/> 
<property name="PortNumber" value="5432"/> 
<property name="DatabaseName" value="shiro_primefaces"/> 
<property name="User" value="shiro_primefaces"/> 
<property name="Password" value="testpass"/> 
</jdbc-connection-pool> 
<jdbc-resource pool-name="pool/shiro-primefaces" jndi-name="java:app/jdbc/shiro-primefaces"/> 
</resources> 

我在standalone.xml數據源是的「java :JBoss的/數據源/ MySQL的」。

shiro.ini:

... 
datasource.resourceName = java:jboss/datasources/mysql 
... 

當我嘗試登錄我得到這個錯誤:

... 
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
... 50 more 
Caused by: java.lang.NullPointerException 
at org.example.shiro.bean.security.ShiroLoginBean.doLogin(ShiroLoginBean.java:40) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 

你需要創建文件的jboss-web.xml中的東西?

回答

1

您需要刪除,GlassFish的-web.xml中,與GlassFish resources.xml中,並從web.xml中的下一行:

<resource-ref> 
    <res-ref-name>jdbc/shiro-primefaces</res-ref-name> 
    <res-type>javax.sql.ConnectionPoolDataSource</res-type> 
    <res-auth>Container</res-auth> 
    <lookup-name>java:app/jdbc/shiro-primefaces</lookup-name> 
</resource-ref> 

您需要添加下一行shiro.ini文件與你數據來源:

datasource.resourceName = java:jboss/datasources/mysql