【问题标题】:Java Wep Application DeploymentJava Web 应用程序部署
【发布时间】:2014-05-18 16:08:19
【问题描述】:

我使用 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 文件后我看不到它们。 对不起,如果这很简单,但我正在编写我的第一个网络应用程序,我现在卡住了。

【问题讨论】:

    标签: java security tomcat web deployment


    【解决方案1】:

    我强烈建议您尝试将您的第一个应用程序部署到 OpenShift Redhat。无需安全管理器即可轻松运行。

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 2018-10-11
      • 1970-01-01
      • 2015-08-09
      • 2015-04-04
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      相关资源
      最近更新 更多