1
resposta

Erro ao testar wsdl - Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource

Olá,

Não está a ser possível rodar o wsdl. Estou com o erro a baixo:

EstoqueWS rodando: http://localhost:8080/estoqews
mai. 19, 2021 6:52:07 DA MANHÃ javax.xml.soap.FactoryFinder find
WARNING: Using deprecated META-INF/services mechanism with non-standard property: javax.xml.soap.MetaFactory. Property javax.xml.soap.SAAJMetaFactory should be used instead.
mai. 19, 2021 6:52:07 DA MANHÃ javax.xml.soap.FactoryFinder find
WARNING: Using deprecated META-INF/services mechanism with non-standard property: javax.xml.soap.MetaFactory. Property javax.xml.soap.SAAJMetaFactory should be used instead.
mai. 19, 2021 6:52:07 DA MANHÃ javax.xml.soap.FactoryFinder find
WARNING: Using deprecated META-INF/services mechanism with non-standard property: javax.xml.soap.MetaFactory. Property javax.xml.soap.SAAJMetaFactory should be used instead.
mai. 19, 2021 6:52:07 DA MANHÃ javax.xml.soap.FactoryFinder find
WARNING: Using deprecated META-INF/services mechanism with non-standard property: javax.xml.soap.MetaFactory. Property javax.xml.soap.SAAJMetaFactory should be used instead.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.sun.xml.ws.model.Injector (file:/C:/Users/MANUEL.CAMBOTA/Documents/J_WS/jaxws-ri/lib/jaxws-rt.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of com.sun.xml.ws.model.Injector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
1 resposta

Olá Manuel, tudo bem?

O erro java.lang.NoClassDefFoundError: javax/activation/DataSource indica que a classe javax.activation.DataSource não pode ser encontrada durante a execução do seu programa.

Esse erro geralmente ocorre quando uma dependência necessária está faltando no classpath do seu projeto. No seu caso, a classe javax.activation.DataSource faz parte da API JavaBeans Activation Framework (JAF).

Para resolver esse problema, você precisa adicionar a dependência correta do JAF ao seu projeto. No seu arquivo pom.xml (caso esteja usando Maven), adicione a seguinte dependência:

<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>javax.activation-api</artifactId>
    <version>1.2.0</version>
</dependency>

Após adicionar a dependência, salve o arquivo pom.xml e deixe o Maven atualizar as dependências do seu projeto. Isso pode levar algum tempo, pois o Maven baixará a nova dependência e suas dependências transitivas.

Se você não estiver usando o Maven, precisará baixar manualmente o JAF (JavaBeans Activation Framework) e adicionar o arquivo JAR ao classpath do seu projeto.

Certifique-se de que a versão da dependência seja compatível com a versão do JAX-WS que você está usando. A versão 1.2.0 mencionada acima é uma versão comum, mas você pode precisar ajustá-la dependendo do contexto do seu projeto.

Após adicionar a dependência correta do JAF, execute o seu programa novamente e verifique se o erro foi resolvido.

Se o problema persistir após adicionar a dependência correta, pode haver outros problemas relacionados à configuração do ambiente ou às dependências adicionais necessárias para o seu projeto JAX-WS. Nesse caso, seria útil fornecer mais detalhes, como o arquivo pom.xml completo, as configurações do servidor de aplicativos e quaisquer outras informações relevantes para que possamos ajudar de maneira mais precisa.