使用 Java Web Start 和 apache.commons-logging 的格式错误的 \uxxxx 编码
Malformed \uxxxx encoding with Java Web Start and apache.commons-logging
我正在尝试将 Java 小程序迁移到 Java Web Start。因此,我使用以下 jnlp 文件调用小程序:
<?xml version="1.0"?>
<jnlp spec="1.0+" codebase="http://localhost:7001/codebase/">
<information>
<title>title</title>
<vendor>vendor</vendor>
</information>
<resources>
<java version="1.7"/>
<jar href="myapplet.jar"/>
<extension name="dependencies" href="Dependencies.jnlp"/>
</resources>
<applet-desc main-class="AppletMainClass" name="MyApplet"/>
</jnlp>
依赖文件:
<?xml version="1.0"?>
<jnlp spec="1.0+" codebase="http://localhost:7001/codebase/">
<information>
<title>Dependencies</title>
<vendor>vendor</vendor>
</information>
<resources>
...
<jar href="commons-logging.jar"/>
<jar href="log4j-1.2.11.jar"/>
</resources>
<component-desc/>
</jnlp>
启动小程序时,要初始化apache-commons logger:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public abstract class BaseApplet extends JApplet {
private transient Log log = LogFactory.getLog(BaseApplet.class);
}
失败 java.lang.IllegalArgumentException:格式错误的 \uxxxx 编码。但是,当运行没有jnlp文件的小程序时,不会出现异常。
到目前为止在网上搜索只给了我一个建议,即属性文件中的一个字符可能被错误地转义,但我在我的属性中找不到这样的东西。
公地-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
log4j.properties:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.httpclient.wire.content=INFO
log4j.logger.org.apache.commons.httpclient=WARN
还有什么可能导致此异常?
结果是 commons-logging.properties 在 jar 中损坏了(但在我的 IDE 中没有),这导致了格式错误的编码异常。
对我来说,删除所有内容
~/.m2/repository
和 运行 maven 解决了问题
我正在尝试将 Java 小程序迁移到 Java Web Start。因此,我使用以下 jnlp 文件调用小程序:
<?xml version="1.0"?>
<jnlp spec="1.0+" codebase="http://localhost:7001/codebase/">
<information>
<title>title</title>
<vendor>vendor</vendor>
</information>
<resources>
<java version="1.7"/>
<jar href="myapplet.jar"/>
<extension name="dependencies" href="Dependencies.jnlp"/>
</resources>
<applet-desc main-class="AppletMainClass" name="MyApplet"/>
</jnlp>
依赖文件:
<?xml version="1.0"?>
<jnlp spec="1.0+" codebase="http://localhost:7001/codebase/">
<information>
<title>Dependencies</title>
<vendor>vendor</vendor>
</information>
<resources>
...
<jar href="commons-logging.jar"/>
<jar href="log4j-1.2.11.jar"/>
</resources>
<component-desc/>
</jnlp>
启动小程序时,要初始化apache-commons logger:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public abstract class BaseApplet extends JApplet {
private transient Log log = LogFactory.getLog(BaseApplet.class);
}
失败 java.lang.IllegalArgumentException:格式错误的 \uxxxx 编码。但是,当运行没有jnlp文件的小程序时,不会出现异常。
到目前为止在网上搜索只给了我一个建议,即属性文件中的一个字符可能被错误地转义,但我在我的属性中找不到这样的东西。
公地-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
log4j.properties:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n
log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.httpclient.wire.content=INFO
log4j.logger.org.apache.commons.httpclient=WARN
还有什么可能导致此异常?
结果是 commons-logging.properties 在 jar 中损坏了(但在我的 IDE 中没有),这导致了格式错误的编码异常。
对我来说,删除所有内容
~/.m2/repository
和 运行 maven 解决了问题