相关疑难解决方法(0)

Java 11:在模块路径或类路径上找不到JAXB-API的实现

我有一个小项目,当我让它运行时确实会引发异常。

问题在这里(TestObject.java):

final JAXBContext jaxbContext = JAXBContext.newInstance(...);
Run Code Online (Sandbox Code Playgroud)

我真的不明白为什么会抛出异常。我还创建了一个像超级按钮一样工作的测试(TestTest.java)。请原谅我的名字,但这只是一个小的测试应用程序,它可以与Java 11一起使用。

我遵循以下步骤:javax.xml.bind.JAXBException在模块路径或类路径上未找到 并添加了JAXB-API的实现

compile('javax.xml.bind:jaxb-api:2.3.0')
compile('javax.activation:activation:1.1')
compile('org.glassfish.jaxb:jaxb-runtime:2.3.0')
Run Code Online (Sandbox Code Playgroud)

到我的build.gradle,但随后它抱怨

Error:java: module not found: java.activation
Run Code Online (Sandbox Code Playgroud)

不见了。由于这也从Java 11中删除,因此我添加了:

compile 'com.sun.activation:javax.activation:1.2.0'
Run Code Online (Sandbox Code Playgroud)

但随后引发了很多错误:

Error:java: the unnamed module reads package com.sun.xml.bind from both jaxb.runtime and jaxb.core
Error:java: the unnamed module reads package com.sun.xml.bind.util from both jaxb.runtime and jaxb.core
Error:java: the unnamed module reads package com.sun.xml.bind.marshaller from both jaxb.runtime and jaxb.core
Error:java: the unnamed module reads package com.sun.xml.bind.api from both jaxb.runtime and jaxb.core
Error:java: the unnamed module reads …
Run Code Online (Sandbox Code Playgroud)

java java-platform-module-system java-11

4
推荐指数
3
解决办法
4384
查看次数

在 Jersey 1.19.1 上禁用 WADL 生成

我在一个带有 Java+Jboss 的 Web 项目上使用 Jersey 1.19.1。

每次我从 Web 服务请求某些内容时,它都会在 server.log 上显示以下条目:

ERROR [STDERR] com.sun.jersey.server.wadl.generators.AbstractWadlGeneratorGrammarGenerator attachTypes
INFO: Couldn't find grammar element for class java.lang.String
Run Code Online (Sandbox Code Playgroud)

搜索如何禁用它,我发现了这个:

    <init-param>
        <param-name>com.sun.jersey.config.server.wadl.DisableWADL</param-name>
        <param-value>true</param-value>
    </init-param>
Run Code Online (Sandbox Code Playgroud)

但这对我来说并没有改变。

如何禁用 WADL 以便不再显示这条烦人的消息?

这是 servlet 的完整条目:

<servlet>
    <servlet-name>windi-mobile-service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.server.wadl.DisableWADL</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>br.com.altimus.mobile.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)

java jersey wadl

3
推荐指数
1
解决办法
5011
查看次数