繁体   English   中英

Google App Engine(Java)上的Struts 2问题-javax.swing.tree.TreeNode是受限制的类

[英]Struts 2 issue on Google App Engine (Java) - javax.swing.tree.TreeNode is a restricted class

我正在尝试为我的Google App Engine项目使用Struts 2框架。 我已经正确配置了struts框架,并且在struts-config.xml文件中创建了一个动作为:

<package name="myproj" namespace="/myproj" extends="struts-default">
  <action name="login">
  <result>/login.jsp</result>
</action>

我正在尝试通过以下方式访问上述操作: http:// localhost:8080 / myproj / login.action 但是我没有得到我的login.jsp页面。 相反,我收到以下错误。

HTTP ERROR 500

Problem accessing /myproj/login.action. Reason:

    java.lang.NoClassDefFoundError: javax.swing.tree.TreeNode is a restricted class. Please see the Google  App Engine developer's guide for more details.
Caused by:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax.swing.tree.TreeNode is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    at org.apache.jasper.runtime.PageContextImpl.access$1100(PageContextImpl.java:64)
    at org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:745)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:743)
    at org.apache.jsp.getin_jsp._jspService(getin_jsp.java:102)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet.java:23)
    at com.google.appengine.tools.development.PrivilegedJspServlet$2.run(PrivilegedJspServlet.java:59)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:57)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)

我需要配置一些东西来解决上述错误,并使Struts 2框架在Google App Engine上正常工作吗?

我在Appengine组中发现了此问题: http : //groups.google.com/group/google-appengine-java/browse_thread/thread/dd84e44f604498c4

当然,您必须点击它将在GAE上播放的链接

您可以按照我的博客教程http://whyjava.wordpress.com/2009/08/30/creating-struts2-application-on-google-app-engine-gae/进行操作 ,其中包含您需要的所有信息。

在Struts 2.3.24中,使用了最新版本的FreeMarker-2.3.22,并且上述解决方案不再起作用。 而是有专用版本的FreeMarker与AppEngine一起使用,可以将其添加到pom中,如下所示:

  <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>${struts2.version}</version>
    <exclusions>
      <exclusion>
        <artifactId>freemarker</artifactId>
        <groupId>org.freemarker</groupId>
      </exclusion>
    </exclusions>
  </dependency>

  <dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker-gae</artifactId>
    <version>2.3.22</version>
  </dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM