我正在尝试将一个web应用程序部署到tomcat7。我读到tomcat提供了servlet库,并通过查看/usr/share/tomcat 7/lib确认了这一点。除其他外,其中包括:
servlet-api.jar,jsp-api.jar,注释-api.jar,httpclient-4.5.3.jar httpclient-cache-4.5.3.jar,httpcore-4.4.6.jar,httpclient-4.5.3.jar,gson-2.6.2.jar
build.xml的相关(我认为)部分内容是:
<path id="compile.classpath">
<!-- Include all JAR files that will be included in /WEB-INF/lib -->
<!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** -->
<pathelement location="${basedir}/lib/*"/>
<!-- Include all elements that Tomcat exposes to applications -->
<fileset dir="${catalina.home}/bin">
<include name="*.jar"/>
</fileset>
<pathelement location="${catalina.home}/lib"/>
<fileset dir="${catalina.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
为什么应用程序没有编译“未知符号”呢?我在项目文件夹/lib中也有这些文件:
symbol: class HttpSession
[javac] location: class QuestionPageServlet
[javac] /var/lib/tomcat7/webapps/FlashcardShark/src/flashcardshark/servlet/QuestionPageServlet.java:53: error: cannot find symbol
[javac] String responseMessage = new Gson().toJson("card successfully udpated");
[javac] ^
[javac] symbol: class Gson
[javac] location: class QuestionPageServlet
[javac] /var/lib/tomcat7/webapps/FlashcardShark/src/flashcardshark/servlet/QuestionPageServlet.java:56: error: cannot find symbol
[javac] response.setStatus(HttpServletResponse.SC_ACCEPTED);
[javac] ^
[javac] symbol: variable HttpServletResponse
[javac] location: class QuestionPageServlet
[javac] /var/lib/tomcat7/webapps/FlashcardShark/src/flashcardshark/servlet/QuestionPageServlet.java:66: error: cannot find symbol
[javac] HttpSession session = request.getSession();
编辑:我从oracles网站下载javaee-8,相应地设置J2EE_HOME,并将以下内容添加到构建文件的上述部分,但它仍然没有编译:
<path id="compile.classpath">
<pathelement location="${basedir}/lib/*"/>
<fileset dir="${catalina.home}/bin"> <include name="*.jar"/>
</fileset>
<pathelement location="${catalina.home}/lib"/>
<fileset dir="${catalina.home}/lib">
<include name="*.jar"/>
</fileset>
<pathelement path = "${env.J2EE_HOME}/${j2ee.jar}"/>
<fileset dir = "lib">
<include name = "**/*.jar"/>
</fileset>
</path>
发布于 2018-05-03 15:07:58
我刚开始编写ant构建脚本:但这是我为使其编译而做的:
<javac srcdir="${src.home}"
destdir="${build.home}/WEB-INF/classes"
debug="${compile.debug}"
includes="${basedir}/lib/*"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
其中包含的选项就是它所做的。
https://stackoverflow.com/questions/50157256
复制相似问题