我使用Vaadin框架编写了我的第一个web应用程序,现在我正在尝试在线部署它。我将它导出到一个.war文件中,并上传到这里:http://www.eatj.com/,但是在尝试运行时我得到了一个关于安全性的错误。(项目名称- JTPWebApp)
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet.init() for servlet com.example.jtpwebapp.JtpwebappUI$Servlet threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)
root cause
java.security.AccessControlException: access denied (java.util.PropertyPermission com.example.jtpwebapp.disable-xsrf-protection read)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
java.security.AccessController.checkPermission(AccessController.java:546)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
java.lang.System.getProperty(System.java:652)
com.vaadin.server.DefaultDeploymentConfiguration.getSystemProperty(DefaultDeploymentConfiguration.java:148)
com.vaadin.server.DefaultDeploymentConfiguration.getApplicationOrSystemProperty(DefaultDeploymentConfiguration.java:121)
com.vaadin.server.DefaultDeploymentConfiguration.checkXsrfProtection(DefaultDeploymentConfiguration.java:260)
com.vaadin.server.DefaultDeploymentConfiguration.<init>(DefaultDeploymentConfiguration.java:80)
com.vaadin.server.VaadinServlet.createDeploymentConfiguration(VaadinServlet.java:183)
com.vaadin.server.VaadinServlet.init(VaadinServlet.java:95)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:120)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)离线很好。我用以下代码创建了文件server.policy和client.policy
grant
{
permission java.security.AllPermission;
};但是我不知道把它们放在哪里,在导出到.war文件之后,我看不到它们在里面。抱歉,如果这是简单的事情,但我正在写我的第一个网络应用,我现在被困住了。
发布于 2014-05-18 16:52:42
我强烈建议您尝试将您的第一个应用程序部署到OpenShift红帽。它很简单,没有安全管理器也能工作。
https://stackoverflow.com/questions/23724020
复制相似问题