嗨,朋友们,
我正在一个项目中工作,我们刚刚从JAVA 7迁移到JAVA 8.在这样做时,我遇到了与jsp编译问题相关的问题。在通过谷歌搜索解决问题时,我开始了解它 是一个常见的问题。但我试过更换罐子,但事实并非如此 似乎工作。当Java版本为7时,我在Jetty Server中运行。
所以运行测试用例,那里也存在问题。我在发帖 错误以及类路径中的jar和示例java和 jsp代码。
请注意我只需要在JDK 1.8中编译,所以请帮助我 围绕JDK 8的可能解决方案。
错误日志:
testSimpleSearchClassComboBox(com.osm.jsp.SimpleSearchTest)junit.framework.AssertionFailedError: expected:<Creo Elements/Direct Model Manager Web Client - Index> but was:<Error 500 PWC6033: Unable to compile class for JSP PWC6197: An error occurred at line: 7 in the jsp file: /style/ptc_creo/../../include/head_common.jsp PWC6199: Generated servlet error: The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files>
[java] at com.osm.ReportingTestCase.assertEquals(ReportingTestCase.java:246)
[java] at com.osm.jsp.SimpleSearchTest.getHtmlForm(SimpleSearchTest.java:91)
[java] at com.osm.jsp.SimpleSearchTest.testSimpleSearchClassComboBox(SimpleSearchTest.java:102)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at com.osm.WMTestCase.runTest(WMTestCase.java:550)
[java] at com.osm.ReportingTestCase.runBare(ReportingTestCase.java:127)
[java] at com.osm.webservices.legacy.WebServiceTestCase.runBare(WebServiceTestCase.java:313)
[java] at com.osm.ReportingTestCase.run(ReportingTestCase.java:325)
[java] at com.osm.WMTestSuite.runTest(WMTestSuite.java:214)
[java] at com.osm.WMTestSuite.run(WMTestSuite.java:209)
[java] at com.osm.WMTestSuite.runTest(WMTestSuite.java:214)
[java] at com.osm.WMTestSuite.run(WMTestSuite.java:209)
[java] at com.osm.WMTestSuite.runTest(WMTestSuite.java:214)
[java] at com.osm.WMTestSuite.run(WMTestSuite.java:209)
[java] at com.osm.jsp.UnitTests.main(UnitTests.java:30)
我的蚂蚁脚本在路径中设置了jar:
<path id="project.classpath.common">
<pathelement location="${basedir}/tools/anttools/dist/anttools.jar"/>
<fileset dir="jar">
<include name="**/*.jar"/>
<exclude name="WorkManager.jar"/>
</fileset>
<fileset dir="${basedir}/windchill/adapter/9.1/jar">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${basedir}/tools/htmlunit-2.8/lib">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${basedir}/tools/junit-4.8.2/lib">
<include name="**/*.jar"/>
</fileset>
<fileset dir="tools/leakdetection/java/dist/">
<include name="*.jar"/>
</fileset>
<fileset dir="tools/sqljdbc/lib/">
<include name="*.jar"/>
</fileset>
<fileset dir="${basedir}/tools/clover/lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="${basedir}/OSMWebServices/build/web/WEB-INF/classes"/>
<pathelement location="${basedir}/OSMWebServices/build/test/classes"/>
</path>
这里的WorkManager是我们的应用程序jar成功的jar 在JDK 1.8中编译。
SimpleSearchTest类中的示例java方法:
public void testSimpleSearchClassComboBox() throws Exception {
System.out.println("Inside testSimpleSearchClassComboBox ");
HtmlForm form = getHtmlForm();
System.out.println("After HtmlForm ");
assertEquals("parsm 0 should be search.value", "search.val",
form.getInputByName("search.val").getNameAttribute());
System.out.println("After form.getInputByName() ");
final List<HtmlSelect> classes = form.getSelectsByName("search.class");
System.out.println("After form.getSelectsByName() ");
final List<HtmlOption> options = classes.get(0).getOptions();
System.out.println("After HtmlOption ");
assertEquals("Should have 4 classes", 4, options.size());
assertEquals("search class should be",
MessageCatalogUtil.getInstance().getMessage("awm_stda", 258, "MODEL_3D", Locale.getDefault()),
options.get(0).getText());
assertEquals("search class should be",
MessageCatalogUtil.getInstance().getMessage("awm_stda", 251, "MASTERDATA", Locale.getDefault()),
options.get(1).getText());
assertEquals("search class should be",
MessageCatalogUtil.getInstance().getMessage("awm_stda", 254, "DRAWING_2D", Locale.getDefault()),
options.get(2).getText());
assertEquals("search class should be",
MessageCatalogUtil.getInstance().getMessage("awm_stda", 261, "PACKAGE_3D", Locale.getDefault()),
options.get(3).getText());
}
我没有看到这可能重复,因为我没有运行它 目前在任何网络服务器中。我试图通过测试用例运行它 提到所需的罐子。在这种情况下请善解释 以及需要升级的内容。我甚至没有通过它 netbeans或eclipse IDE。我通过命令提示符运行它 它会调用我的测试用例。请让我知道我能做些什么 在这种情况下考虑一下。
答案 0 :(得分:0)
我在jboss-5.1.0.GA和jboss-eap-5.2中解决了这个问题,该系统需要在两个平台上都可以运行。您需要替换目录 /server/default/deploy/jbossweb.sar >中的文件 jasper-jdt.jar ecj-4.3.1.jar 的jboss的“ strong”,并将其重命名为 jasper-jdt.jar >。 (观察:在应用更改之前备份原始jasper-jdt.jar)。
因此:将 jasper-jdt.jar 替换为 ecj-4.3.1.jar 重命名ecj- 4.3.1.jar到jasper-jdt.jar。