我有一个用于标签打印的java程序(Argox,Godex打印机10x20cm)。我需要在theese标签中添加更多信息。问题是我没有源代码所以我使用Java Decompiler获取.class文件。
我已将这些.class文件添加到.jar文件附近的新java项目+文件中。 Rest服务器成功启动,我的java项目从tomcat webapp接收信息,但是有一些错误,我无法打印我的文件。
有控制台: http://pastebin.com/c09PrWcZ
有java代码出现错误: http://pastebin.com/1WuKthWp(它是5个文件中的一个,但其他用于REST启动,属性选项等。
我真的很喜欢java,jersey和rest service。
答案 0 :(得分:0)
堆栈跟踪中的问题是
net.sf.jasperreports.engine.JRRuntimeException: Error creating SAX parser
让我们猜猜为什么。
它没有使用正确版本的xerces库来编译.jrxml,你可能在classpath中有错误的xerces库,你可能有很多......
<强>解决方案:强>
检查您的jasper报告版本的jasper报告分布,包含正确的xerces jar并删除其他xerces实现。
编辑:评论中的用户解决方案:
“我删除了所有.jar文件并从编译后的.jar文件附近的lib文件夹中复制了所有文件。现在我没有错误:))”
一开始,jasper报告使用的是DTD(如果检查.jrxml文件的xml),你会发现:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
然后他们切换到XML架构
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Entrata" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" isFloatColumnFooter="true">
因此,如果您打开旧报告(DTD)并使用es编辑。 iReport / Jaspersoft Studio它会将标题从DTD更改为XML模式,而旧版本的jdt-compiler将无法识别此格式。
<强>解决方案强>
在jrxml文件中手动切换回DOCTYPE定义,并从jasper报告标记中删除模式定义(注意设置iReport / Jaspersoft studio以使用旧版本(设置,兼容性),因此它不会添加不是的标记/属性支持)
或 将jasper报告更新为新版本(建议)并检查所有文件是否具有模式定义