【问题标题】:java.lang.SecurityException: Prohibited package name: java.langjava.lang.SecurityException:禁止的包名:java.lang
【发布时间】:2011-03-30 07:17:42
【问题描述】:

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

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

请帮助...它的窃听很长时间了..

谢谢! :)

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;

路径=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 老化\;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

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>

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

构建文件:build.xml 创建: [javac] 编译 1 个源文件到 C:\Documents and Settings\344756\New\MyWe b\WebServiceServer\构建 [servicegen] 生成服务“UserModel”... [servicegen] java.lang.SecurityException:禁止的包名:java.lang [servicegen] 在 java.lang.ClassLoader.defineClass(ClassLoader.java:524) [servicegen] 在 java.security.SecureClassLoader.defineClass(SecureClassLoader .java:123) [servicegen] 在 weblogic.utils.classloaders.GenericClassLoader.findLocalClass (GenericClassLoader.java:476) [servicegen] 在 weblogic.utils.classloaders.GenericClassLoader.findClass(Gene ricClassLoader.java:181) [servicegen] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:289) [servicegen] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:235) [servicegen] 在 weblogic.utils.classloaders.GenericClassLoader.loadClass(Gene ricClassLoader.java:223) [servicegen] 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) [servicegen] at java.lang.Class.forName0(Native Method) [servicegen] 在 java.lang.Class.forName(Class.java:219) [servicegen] 在 weblogic.xml.schema.binding.internal.codegen.Compiler.loadCla ss(编译器.java:641) [servicegen] 在 weblogic.xml.schema.binding.internal.codegen.Compiler.addToMa 平(编译器.java:450) [servicegen] 在 weblogic.xml.schema.binding.internal.codegen.Compiler.compile (编译器.java:175) [servicegen] 在 weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.ma pClass(XSDTypeMappingBuilder.java:89) [servicegen] 在 weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.ma pClass(XSDTypeMappingBuilder.java:102) [servicegen] 在 weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.a ddMapping(TypeMappingBuilderBase.java:180) [servicegen] 在 weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper .addMapping(ComponentAutoTyper.java:88) [servicegen] 在 weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper .mapComponent(ComponentAutoTyper.java:141) [servicegen] 在 weblogic.ant.taskdefs.webservices.autotype.JavaAutoTyper.run( JavaAutoTyper.java:81) [servicegen] 在 weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.r unAutoTyper(ServiceGenTask.java:367) [servicegen] 在 weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.g enerateService(ServiceGenTask.java:313) [servicegen] 在 weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.e xecute(ServiceGenTask.java:181) [servicegen] 在 org.apache.tools.ant.Task.perform(Task.java:341) [servicegen] 在 org.apache.tools.ant.Target.execute(Target.java:309) [servicegen] 在 org.apache.tools.ant.Target.performTasks(Target.java:336) [servicegen] 在 org.apache.tools.ant.Project.executeTarget(Project.java:1339) [servicegen] 在 org.apache.tools.ant.Project.executeTargets(Project.java:1255 ) [servicegen] 在 org.apache.tools.ant.Main.runBuild(Main.java:609) [servicegen] 在 org.apache.tools.ant.Main.start(Main.java:196) [servicegen] 在 org.apache.tools.ant.Main.main(Main.java:235) 构建失败 文件:C:/Documents%20and%20Settings/344756/New/MyWeb/WebServiceServer/build.xml:2 0:java.lang.SecurityException:禁止的包名:java.lang 总时间:1秒

【问题讨论】:

  • 您使用的是哪个版本的 Weblogic?嗯...我明白了,它是 8.1 :D 之前错过了。那么问题来了,你用的是什么版本的JDK?因为在您的路径上,您定义了 3 个不同的 JRE。你的 JAVA_HOME 变量指向什么?这很可能是 JDK 冲突的错误。

标签: java web-services ant


【解决方案1】:

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

当我跑步时:

mvn clean install     

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

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

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

【讨论】:

    【解决方案2】:

    你自己的类在什么包里?

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

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

    【讨论】:

    • 首先它得到了解决......现在我仍然遇到同样的错误,即使将我的课程放在一个包中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    相关资源
    最近更新 更多