java.lang.SecurityException:禁止的包名:java.lang

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3491187/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 02:03:43  来源:igfitidea点击:

java.lang.SecurityException: Prohibited package name: java.lang

javaweb-servicesant

提问by ahmedmzl

I'm getting the following error when trying to build my very simple webservice project. I've given the build.xml, my java file and path values

尝试构建我的非常简单的 Web 服务项目时出现以下错误。我已经给出了 build.xml、我的 java 文件和路径值

The class file is getting generated, but service is not getting generated.

正在生成类文件,但未生成服务。

Please help... It's bugging for a looooong time..

请帮助...它的窃听了looooong时间..

Thanks! :)

谢谢!:)

CLASSPATH=C:\bea\weblogic81\server\lib\weblogic.jar;C:\bea\weblogic81\server\lib \webservices.jar;C:\bea\weblogic81\server\lib\ojdbc14.jar;C:\j2sdk1.4.2_18\jre\l ib\rt.jar;c:\ant\apache-ant-1.5.4\lib\ant.jar;c:\ant\apache-ant-1.5.4\lib\option al.jar;

Path=C:\Program Files\Reflection;C:\oracle\ora92\bin;C:\Program Files\Oracle\jre \1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\WINDOWS\system32;C:\WINDOWS; C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\Windows Im aging\;C:\j2sdk1.4.2_18\bin;c:\j2sdk1.4.2_18\bin;c:\ant\apache-ant-1.5.4\bin; PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

CLASSPATH=C:\bea\weblogic81\server\lib\weblogic.jar;C:\bea\weblogic81\server\lib\webservices.jar;C:\bea\weblogic81\server\lib\ojdbc14.jar;C:\ j2sdk1.4.2_18\jre\l ib\rt.jar;c:\ant\apache-ant-1.5.4\lib\ant.jar;c:\ant\apache-ant-1.5.4\lib\option al 。罐;

路径=C:\Program Files\Reflection;C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin ;C:\WINDOWS\system32;C:\WINDOWS; C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\Windows Imaging\;C:\j2sdk1.4.2_18\bin;c:\j2sdk1.4.2_18\bin; c:\ant\apache-ant-1.5.4\bin; PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH



UserModel.java

用户模型.java

import java.sql.*;
import java.util.*;

public class UserModel
{


    Connection con=null;

    Statement st=null;
    Statement st1=null;
    ResultSet rs=null;
    String nm,age,course,address,mob,IdNum1;
    int IdNum,id;
    int x;
    int check=0;
    ArrayList list=new ArrayList();
    ArrayList eptylist=new ArrayList();
    UserModel() 
    {
    }

    public int insert(String name,String age,String course,String address,int Mob) throws  SQLException, ClassNotFoundException 

    {
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.22:40401:MKTMRM9","mrm2","Marms*123.");

          st=con.createStatement();

          x= st.executeUpdate("insert into student values(seqno.nextval,'"+name+"','"+age+"','"+course+"','"+address+"','"+Mob+"')");

          if(x==1)
        {
        st1=con.createStatement();       
         rs=st.executeQuery("select seqno.currval from student");

          while(rs.next())
          {   

              IdNum=rs.getInt(1);

          }
        return IdNum;

        }
               else
        return 0;

    }   

    public ArrayList getDetails(int id1) throws  SQLException, ClassNotFoundException
    {
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.142.22:40401:MKTMRM9","mrm2","Marms*123.");
        st=con.createStatement();
        rs=st.executeQuery("select * from student where StudentId="+id1);
        while(rs.next())
        {
            check++;
            id=rs.getInt(1);
            nm=rs.getString(2);
            age=rs.getString(3);
            course=rs.getString(4);
            address=rs.getString(5);
            mob=rs.getString(6);

        }

        list.add(new Integer(id));
        list.add(nm);
        list.add(age);
        list.add(course);
        list.add(address);
        list.add(mob);
        if(check!=0)
        return list;
        else 
        return eptylist; 
    }

}


build.xml

构建文件

<?xml version="1.0"?> 
<project name="WebServiceServer" default="create" basedir=".">

<taskdef name="servicegen" classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask"/>


<property name="src" value=".\src"/>
<property name="build" value=".\build"/>
<property name="namespace" value="http://localhost:7001/UserModel"/>

<target name="create">

<javac srcdir="${src}" destdir="${build}" includes="**/*.java">
</javac>


<servicegen
    destEar="myWebServer.ear"
    warName="mywebserver.war"
    contextURI="WebServiceServer">

    <service
        javaClassComponents="UserModel"
        targetNamespace="${namespace}"
        serviceName="UserModel"
        serviceURI="/UserModel"
        generateTypes="True"
        expandMethods="True"
        style="rpc">
    </service>

    <classpath>
        <pathelement path="${build}"/>
        <pathelement path="${java.class.path}"/>
        <pathelement path="{lib}/ojdbc14.jar"/>
    </classpath>

</servicegen>

</target>

</project>


error from console - while ant is run

来自控制台的错误 - 运行 ant 时

    Buildfile: build.xml

    create:
        [javac] Compiling 1 source file to C:\Documents and Settings4756\New\MyWe
    b\WebServiceServer\build
    [servicegen] Generating service "UserModel" ...
    [servicegen] java.lang.SecurityException: Prohibited package name: java.lang
    [servicegen]    at java.lang.ClassLoader.defineClass(ClassLoader.java:524)
    [servicegen]    at java.security.SecureClassLoader.defineClass(SecureClassLoader
    .java:123)
    [servicegen]    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass
    (GenericClassLoader.java:476)
    [servicegen]    at weblogic.utils.classloaders.GenericClassLoader.findClass(Gene
    ricClassLoader.java:181)
    [servicegen]    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    [servicegen]    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    [servicegen]    at weblogic.utils.classloaders.GenericClassLoader.loadClass(Gene
    ricClassLoader.java:223)
    [servicegen]    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

    [servicegen]    at java.lang.Class.forName0(Native Method)
    [servicegen]    at java.lang.Class.forName(Class.java:219)
    [servicegen]    at weblogic.xml.schema.binding.internal.codegen.Compiler.loadCla
    ss(Compiler.java:641)
    [servicegen]    at weblogic.xml.schema.binding.internal.codegen.Compiler.addToMa
    pping(Compiler.java:450)
    [servicegen]    at weblogic.xml.schema.binding.internal.codegen.Compiler.compile
    (Compiler.java:175)
    [servicegen]    at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.ma
    pClass(XSDTypeMappingBuilder.java:89)
    [servicegen]    at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.ma
    pClass(XSDTypeMappingBuilder.java:102)
    [servicegen]    at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.a
    ddMapping(TypeMappingBuilderBase.java:180)
    [servicegen]    at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper
    .addMapping(ComponentAutoTyper.java:88)
    [servicegen]    at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper
    .mapComponent(ComponentAutoTyper.java:141)
    [servicegen]    at weblogic.ant.taskdefs.webservices.autotype.JavaAutoTyper.run(
    JavaAutoTyper.java:81)
    [servicegen]    at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.r
    unAutoTyper(ServiceGenTask.java:367)
    [servicegen]    at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.g
    enerateService(ServiceGenTask.java:313)
    [servicegen]    at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.e
    xecute(ServiceGenTask.java:181)
    [servicegen]    at org.apache.tools.ant.Task.perform(Task.java:341)
    [servicegen]    at org.apache.tools.ant.Target.execute(Target.java:309)
    [servicegen]    at org.apache.tools.ant.Target.performTasks(Target.java:336)
    [servicegen]    at org.apache.tools.ant.Project.executeTarget(Project.java:1339)

    [servicegen]    at org.apache.tools.ant.Project.executeTargets(Project.java:1255
    )
    [servicegen]    at org.apache.tools.ant.Main.runBuild(Main.java:609)
    [servicegen]    at org.apache.tools.ant.Main.start(Main.java:196)
    [servicegen]    at org.apache.tools.ant.Main.main(Main.java:235)

    BUILD FAILED
    file:C:/Documents%20and%20Settings/344756/New/MyWeb/WebServiceServer/build.xml:2
    0: java.lang.SecurityException: Prohibited package name: java.lang

    Total time: 1 second

回答by Jesper

What package are your own classes in?

你自己的课程在什么包里?

This error happens because it's forbidden to put your own classes in the package java.lang. It looks like you are trying to compile a class that's in the package java.lang.

发生此错误是因为禁止将自己的类放入包中java.lang。看起来您正在尝试编译包中的类java.lang

If your own classes are not in a package at all (you don't have a packagestatement at the top of your source files), then put them in a package.

如果您自己的类根本不在包中(package源文件顶部没有声明),则将它们放入包中。

回答by user3125139

If you make sure your project package name is not start with Java or javax, try to use the following way:

如果您确定您的项目包名不是以Java或javax开头,请尝试使用以下方式:

When I run:

当我运行时:

mvn clean install     

Command in CLI, it shows build success, when I use Eclipse compile project, it shows

CLI中的命令,它显示构建成功,当我使用Eclipse编译项目时,它显示

java.lang.SecurityException: Prohibited package name: java.lang.annotation

java.lang.SecurityException:禁止的包名:java.lang.annotation

But my parnter project was right, I think it's IDE or compile environment problem, when I downgrade jdk version from 1.8x to 1.7x, the problem is gone.

但是我的伙伴项目是对的,我认为是IDE或编译环境的问题,当我将jdk版本从1.8x降级到1.7x时,问题就消失了。