[Seasar-user:21576] Re: [DOMA]エンティティプロパティへのアクセスに失敗します
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2013年 3月 26日 (火) 17:38:04 JST
中村(taedium)です。
java.lang.reflect.FieldクラスのsetAccessibleメソッドの
呼び出しがセキュリティポリシーで禁じられているために
例外が発生しているようです。
対応方法の1つはセキュリティポリシーを調整することです。
WebOTXをお使いのようですので
こちらのマニュアルが参考になるのではと思います。
http://www.nec.co.jp/WebOTX/download/manual/84/html/design/2_webap.html#2.4.
そもそもpublicなField(ここではSAE1402S04SA003Entityのstフィールド)
に対してはsetAccessibleメソッドを呼び出す必要がないので、
Domaの方を修正してみました。
セキュリティポリシーの調整が難しい場合はこちらをお試しください。
http://maven.seasar.org/maven2-snapshot/org/seasar/doma/doma/1.30.0-SNAPSHOT/doma-1.30.0-20130326.083256-1.jar
On Tue, 26 Mar 2013 16:28:55 +0900
maro <maro @ pascalia.co.jp> wrote:
> 長岡といいます。
> DOMA初心者です。
> 以下のようなEntityクラスを作りました。
>
> package sae1402.entity;
>
> import org.seasar.doma.Entity;
> import org.seasar.doma.Column;
>
> @Entity
> public class SAE1402S04SA003Entity {
>
> @Column(name = "MultiBlockName")
> public String st;
>
> }
>
> 実行すると、以下のようなエラーが発生します。
> 対応方法をご教示頂けませんでしょうか。
>
> 2013/03/26 15:21:59.750 3552 75 xxx-PC 0 SAE sae1402.SAE1402S04Service
> sae1402S04SA001 141 システムエラーが発生しました。
> java.lang.ExceptionInInitializerError
> at sae1402.Dao.SAE1402S04DaoImpl.SelectTest(SAE1402S04DaoImpl.java:97)
> at
> sae1402.SAE1402S04Service.sae1402S04SA001(SAE1402S04Service.java:101)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> com.nec.webotx.enterprise.webservice.InstanceResolverImpl$1.invoke(InstanceResolverImpl.java:112)
> at
> com.nec.webotx.webservice.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:147)
> at
> com.nec.webotx.webservice.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:267)
> at
> com.nec.webotx.webservice.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
> at
> com.nec.webotx.webservice.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:607)
> at
> com.nec.webotx.webservice.xml.ws.api.pipe.Fiber._doRun(Fiber.java:566)
> at
> com.nec.webotx.webservice.xml.ws.api.pipe.Fiber.doRun(Fiber.java:551)
> at
> com.nec.webotx.webservice.xml.ws.api.pipe.Fiber.runSync(Fiber.java:446)
> at
> com.nec.webotx.webservice.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:265)
> at
> com.nec.webotx.webservice.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:495)
> at
> com.nec.webotx.webservice.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:256)
> at
> com.nec.webotx.webservice.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
> at
> com.nec.webotx.enterprise.webservice.JAXWSServlet.doPost(JAXWSServlet.java:178)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:304)
> at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:302)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> at
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:341)
> at
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:183)
> at
> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:631)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:326)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:337)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:269)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:694)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:639)
> at
> com.nec.webotx.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:220)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:694)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:639)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:633)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1117)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:130)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:694)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:639)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:633)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1117)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:982)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:810)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:584)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: org.seasar.doma.jdbc.entity.EntityPropertyAccessException:
> [DOMA2208]
> エンティティクラス[sae1402.entity.SAE1402S04SA003Entity]のエンティティプロパティ[st]へのアクセスに失敗しました。原因は次のものです。java.security.AccessControlException:
> access denied (java.lang.reflect.ReflectPermission
> suppressAccessChecks)
> at
> org.seasar.doma.jdbc.entity.BasicPropertyType.getField(BasicPropertyType.java:161)
> at
> org.seasar.doma.jdbc.entity.BasicPropertyType.createAccessorFactory(BasicPropertyType.java:141)
> at
> org.seasar.doma.jdbc.entity.BasicPropertyType.<init>(BasicPropertyType.java:126)
> at
> sae1402.entity._SAE1402S04SA003Entity.<init>(_SAE1402S04SA003Entity.java:14)
> at
> sae1402.entity._SAE1402S04SA003Entity.<clinit>(_SAE1402S04SA003Entity.java:11)
> ... 53 more
> Caused by: java.security.AccessControlException: access denied
> (java.lang.reflect.ReflectPermission suppressAccessChecks)
> at
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
> at
> java.security.AccessController.checkPermission(AccessController.java:546)
> at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
> at
> java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:107)
> at
> org.seasar.doma.internal.util.FieldUtil.setAccessible(FieldUtil.java:56)
> at
> org.seasar.doma.jdbc.entity.BasicPropertyType.getField(BasicPropertyType.java:159)
> ... 57 more
>
> よろしくお願いします。
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
--
Toshihiro Nakamura <nakamura.toshihiro @ isid.co.jp>
Seasar-user メーリングリストの案内