繁体   English   中英

将Java应用程序部署到Tomcat的问题

[英]Issues deploying a Java application to Tomcat

我构建了一个简单的Java Web应用程序。 它为用户提供了一系列RESTful API,以通过Web界面在Java DB上执行某些操作。 在开发过程中,我使用了NetBeans环境,在测试中使用了Glassfish。

现在,我已经完成了它,我希望能够使用二进制文件将其部署到另一台计算机上(尽管到目前为止,我一直使用同一台计算机,直到我学会了如何做)。

我安装了Tomcat 7,并将.war文件移动到Tomcat的webapp文件夹中。 应用程序将部署。 之后,我尝试使用为此专门创建的按钮从数据库读取一些数据,但出现以下错误

在此处输入图片说明

我不确定出了什么问题,但是我有两种理论。

1)Web应用程序无法连接到数据库。 但是,当我尝试从NetBeans启动JavaDB之后再次运行该应用程序时,没有任何区别。

2)以某种方式,应用程序无法访问Node服务。 我以为在移动应用程序时无需更改API链接,但是也许我错了。

也许还有其他我没有考虑的问题? 对于有关如何正确部署此类应用程序的任何建议,我将不胜感激。

编辑:通过使用TomEE解决了该问题。

错误来自您选择的应用程序服务器。 TomCat只是一个Servlet容器(意味着它仅支持Servlet / JSP)。 任何其他功能(JAX-RS,CDI等)都需要Java EE认证的服务器,例如GlassFish,WildFly,Payara,WebLogic,OpenLiberty或TomEE。

如果要在生产或测试环境中使用TomCat, TomEE可能是最好的选择,它基本上是TomCat + Java EE的其他功能。

编辑:TomEE没有像GlassFish这样的JNDI数据源配置的GUI,您需要编辑conf / tomee.xml

<Resource id="myDataSource" type="javax.sql.DataSource">
    jdbcDriver = org.apache.derby.jdbc.ClientDriver
    jdbcUrl = jdbc:derby://localhost:1527/dbname
    userName = app
    password = app
</Resource>

在您的Java代码中:

@Path("resources")
@Stateless
public class MyResources{
    @Resource(name="myDataSource")
    DataSource dataSource;

    @GET
    public Response SomeMethod(){
         //Do stuff here
    }
}

您可以在此处查看有关数据源的更多详细配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM