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

Rao!!!

Hoje estava criando um cliente para um WebService. Baixei o JBoss IDE (Que por sinal é uma ótima ferramenta! Na verdade é o eclipse com ferramentas a mais!)

Usei o gerador de Cliente Web service do Jboss e apartir do endereço do WSDL o plugin gera todas as classes!

Depois de gerar as classes me debati com o seguinte erro ao executar o cliente!

java.lang.SecurityException: Prohibited package name: java.lang at java.lang.ClassLoader.preDefineClass(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$100(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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
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$100(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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at MediaSearchBeanServiceLocator.getMediaSearchBeanPort( MediaSearchBeanServiceLocator.java:55)
at MediaSearchBeanServiceLocator.getMediaSearchBeanPort( MediaSearchBeanServiceLocator.java:50)
at MediaSearchBeanProxy._initMediaSearchBeanProxy( MediaSearchBeanProxy.java:13)
at MediaSearchBeanProxy.<init>(MediaSearchBeanProxy.java:8)

Então! o problema é que o gerador cliente também gerou as classes de Excessões do próprio java!

No meu caso, o web Service poderia levantar uma “java.lang.Exception”, mas “java.lang” é um pacote do java, e como este pacote estava sendo referenciado no WSDL, o gerador acabou criando as classe e o pacote.

Para resolver o problema apenas renomeie o pacote para outro nome.

No Eclipse, basta clicar com o botão direito no pacote e clicar em:

Refactor -> Rename

E o eclipse já altera no projeto inteiro todas as classes que tenham referência a classe!

Deixe um comentário