簡體   English   中英

使用shiro wildfly jsf和primefaces進行簡單登錄

[英]simple login with shiro wildfly jsf and primefaces

我正在嘗試移植為玻璃魚編寫的該示例shiro-primefaces-example ,但是我對數據源有麻煩。 該示例有兩個配置文件:

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 / datasources / 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或其他內容?

您需要刪除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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM