java - Action配置中包路径不能以 "java "开头

标签 java struts2 web

<package name="default" extends="struts-default">
    <action name="loginAction" class="java.LoginAction">
        <result name="input">/login.jsp</result>
        <result name="success">/success.jsp</result>
    </action>
</package>

如果我使用以 java.* 开头的包路径配置位置,它将导致错误。 堆栈是

Caused by: Action class [java.LoginAction] not found.

谁能告诉我原因?

最佳答案

您不应该将自己的类放入以 java.* 开头的包结构中。我相信至少有一些安全管理器可以防止这种情况发生,而且总的来说这将是一个非常糟糕的主意:java.* 包中的类应该是 JRE 的一部分,而不是用户-已创建。

你得到的错误表明可能正在使用的类加载器拒绝加载以 java. 开头的包中的类,这基本上是同一件事的另一种表现形式。

为什么您想要将您的类放在一个名为java 的包中? (我假设您实际上已经尝试过这样做。如果您只是随机决定将包名称指定为 java 而实际上没有声明该包的类,那么当然它会失败。)

举个例子,我尝试运行这个程序:

package java;

public class Test {
    public static void main(String[] args) {
        System.out.println("Woot");
    }
}

结果是这个错误:

Exception in thread "main" java.lang.SecurityException: Prohibited package name:
 java
        at java.lang.ClassLoader.preDefineClass(Unknown Source)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: java.Test.  Program will exit.

关于java - Action配置中包路径不能以 "java "开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544921/

相关文章:

javascript - 函数仅从 $(function(){ 调用一次

javascript - TypeScript:TypeError b 未定义

javascript - 需要在 iFrame 中禁用 Javascript

java - 如何从 HashMap<String, String> 中删除 “Null” 键?

java - PostgreSQL IF 语句不接受参数

java - 如何使用Java从特定服务器访问数据库?

java - 如何使用 Struts 2 <s :file> tag 在数据库中插入图像

java - Struts2 没有加载我的 webapp...404 错误?

java - Struts2读取上传文件内容

java - Android 以编程方式停止 toast 通知?