我已遵循this Tutorial使用Netbean 7.3.1创建简单的Java EE 7 Web服务。我使用Netbeans运行Glassfish 4.0。我成功地运行了项目没有任何问题。
下一步是在独立版本的GlassFish 4.0 webserver上部署Webservice项目。所以我可以在没有Netbeans的情况下运行它。
在http://localhost:4848
上使用Glassfish网络界面,并导航
Common Taks -> Applications -> Deploy
我浏览使用(“要上传到服务器的打包文件”)并从我项目的子目录/ dist /
中选择CustomerDB.war文件我通过在Netbean中运行项目来创建war文件。
但部署失败,出现以下错误。
Error occurred during deployment: Exception while preparing the app : Invalid resource Please see server.log for more details.
当我检查服务器日志C:\ glassfish4 \ glassfish \ domains \ domain1 \ logs \ server.log
它说
[2013-08-20T16:15:07.633+0100] [glassfish 4.0] [INFO] [] [org.glassfish.admingui] [tid: _ThreadID=33 _ThreadName=admin-listener(2)] [timeMillis: 1377011707633] [levelValue: 800] [[
Exception Occurred :Error occurred during deployment: Exception while preparing the app : Invalid resource ]]
更新
好的,我忘记添加连接,找到上述问题的解决方案。 我刚刚添加了连接池和连接重新连接。
通过导航Common Tasks -> Resources -> JDBC -> JDBC Connection Pools
添加JDBC连接池。
通过导航Common Tasks -> Resources -> JDBC -> JDBC Resources
但我仍然得到错误。这次是不同的。
Error occurred during deployment: Exception while deploying the app [CustomerDB] : Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource Error Code: 0. Please see server.log for more details.
任何想法我缺少什么?
答案 0 :(得分:3)
要修复第一个问题,请从项目中打开glassfish-resource.xml
文件,它看起来像这样。
如果您在server-configuration文件夹中没有glassfish-resource.xml,您还可以通过单击netbeans中的服务选项卡并单击连接池来检查这些详细信息,如此屏幕截图所示。
根据其中的信息,并使用Glassfish 4.0网络界面http://localhost:4848
首先通过导航创建新的JDBC连接池
常见任务 - >资源 - > JDBC - > JDBC连接池。
它看起来像这样。
然后通过导航创建Connection资源
常见任务 - >资源 - > JDBC - > JDBC资源
它会看起来像这样。
首先排除问题。您可以使用连接池中的Ping按钮对其进行测试
第二个问题。 (如果您的ping不成功,请执行以下操作)
在Netbeans安装文件夹中搜索mysql-connector-java-5.1.23-bin.jar
文件并将其复制到Glassfish库文件夹
C:\glassfish4\glassfish\lib
复制后停止&通过在文件夹C:\glassfish4\glassfish\bin
asadmin.bat stop-domain domain1
asadmin.bat start-domain domain1
在上面之后,再次部署应用程序,它将成功部署,您可以使用测试界面访问它
http://localhost:8080/CustomerDB/test-resbeans.html
与netbeans完全一样。