打包 Servlet(编译时出现符号错误)

Packaging Servlets (symbol error on compile)

我一直在构建我的第一个(有点大)tomcat/mysql 项目。 一切进展顺利,但现在我想将我的 servlet 放入包中(并导入 classes),所以不想编译。

Servlet 存储库:C:\tomcat\webapps\web\web-inf\classes\com\coreservlets

包名:com.coreservlets

cmd shell 命令(编译):(我知道这个 classpath / 编译路径有效)

C:\tomcat\webapps\web\web-inf\classes\com\coreservlets>

javac -classpath c:\apache\tomcat\lib\servlet-api.jar LoginHandler.java

我在存储库中有两个 servlet(一个编译,另一个不编译)。不编译的会在编译时得到这个信息

  LoginHandler.java:16: error: cannot find symbol
  import com.coreservlets.MyUser;
                         ^
  symbol:   class MyUser
  location: package com.coreservlets

我的XML:

<servlet>
    <servlet-name>LoginHandler</servlet-name>
    <servlet-class>com.coreservlets.LoginHandler</servlet-class>
</servlet>
<servlet>
    <servlet-name>MyUser</servlet-name>
    <servlet-class>com.coreservlets.MyUser</servlet-class>
<servlet-mapping>
    <servlet-name>LoginHandler</servlet-name>
    <url-pattern>/LoginHandler</url-pattern>
</serlvet-mapping>
<servlet-mapping>
    <servlet-name>MyUser</servlet-name>
    <url-pattern>/MyUser</url-pattern>
</serlvet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

LoginHandler 代码片段

package com.coreservlets;
import com.coreservlets.MyUser;

MyUser 代码片段

package com.coreservlets;

MyUser.java 文件将顺利编译。 只有 LoginHandler 编译失败。我看到它知道 class MyUser 在哪里,并看到包位置......我在这里做错了什么?

*这就是我或多或少想要做的事情(只需将 servlet 打包并能够 import/export java classes/constructors: http://www.tutorialspoint.com/servlets/servlets-packaging.htm

谢谢!

您的类路径有问题。解决方法有很多种,最简单的就是call

javac -classpath c:\apache\tomcat\lib\servlet-api.jar *.java

顺便说一句,更准确,也很简单的教程是http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/