【问题标题】:Deploying a maven EAR application through netbeans to glassfish fails通过 netbeans 将 Maven EAR 应用程序部署到 glassfish 失败
【发布时间】:2018-03-13 20:42:48
【问题描述】:

我正在尝试通过 Netbeans 使用右键单击 -> 调试将 maven EAR 应用程序部署到 Glassfish 3 服务器,但失败并显示:GlassFish 服务器,部署,将请求正文写入服务器时出错,错误

输出是:

BUILD SUCCESS
------------------------------------------------------------------------
Total time: 0.977 s
Finished at: 2017-10-02T21:00:19+03:00
Final Memory: 9M/393M
------------------------------------------------------------------------
Deploying on GlassFish Server
profile mode: false
debug mode: false
force redeploy: true

Distributing /path/to/ear.ear
GlassFish Server, deploy, Error writing request body to server, false

Glassfish 日志不包含日志信息。

Netbeans IDE 日志包含以下内容:

INFO [glassfish]: Requested Entity: public id = -//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN, system id = http://glassfish.org/dtds/glassfish-resources_1_5.dtd
INFO [null]: Last record repeated again.
WARNING [glassfish-eecommon]: Deployment plan not supported in GlassfishConfiguration.save()
INFO [org.netbeans.modules.glassfish.tooling.admin.RunnerHttpDeploy]: IO exception caught in handleSend() method:
java.io.IOException: Error writing request body to server
    at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.checkError(HttpURLConnection.java:3518)
    at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.write(HttpURLConnection.java:3501)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
    at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253)
    at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:255)
    at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:360)
    at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:238)
    at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:377)
[catch] at org.netbeans.modules.glassfish.tooling.admin.RunnerHttpDeploy.handleSend(RunnerHttpDeploy.java:267)
    at org.netbeans.modules.glassfish.tooling.admin.Runner.handleHTTPConnection(Runner.java:828)
    at org.netbeans.modules.glassfish.tooling.admin.Runner.call(Runner.java:939)
    at org.netbeans.modules.glassfish.tooling.admin.Runner.call(Runner.java:73)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
INFO [org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment]
The module has not been deployed.
See the server log for details.
[catch] at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:259)
    at org.netbeans.modules.maven.j2ee.execution.DeploymentHelper.perform(DeploymentHelper.java:208)
    at org.netbeans.modules.maven.j2ee.execution.CoSAlternativeExecutorImpl.execute(CoSAlternativeExecutorImpl.java:90)
    at org.netbeans.modules.maven.cos.CoSAlternativeExecutor.execute(CoSAlternativeExecutor.java:87)
    at org.netbeans.modules.maven.cos.CosChecker.checkRunMainClass(CosChecker.java:209)
    at org.netbeans.modules.maven.cos.CosChecker.checkRunConfig(CosChecker.java:163)
    at org.netbeans.modules.maven.execute.MavenCommandLineExecutor.run(MavenCommandLineExecutor.java:225)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
INFO [glassfish]: Requested Entity: public id = -//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN, system id = http://glassfish.org/dtds/glassfish-resources_1_5.dtd
INFO [null]: Last record repeated again.
WARNING [glassfish-eecommon]: Deployment plan not supported in GlassfishConfiguration.save()
INFO [org.netbeans.modules.glassfish.tooling.admin.RunnerHttpDeploy]: IO exception caught in handleSend() method:
java.io.IOException: Error writing request body to server
    at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.checkError(HttpURLConnection.java:3518)
    at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.write(HttpURLConnection.java:3501)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
    at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253)
    at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:255)
    at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:360)
    at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:238)
    at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:377)
[catch] at org.netbeans.modules.glassfish.tooling.admin.RunnerHttpDeploy.handleSend(RunnerHttpDeploy.java:267)
    at org.netbeans.modules.glassfish.tooling.admin.Runner.handleHTTPConnection(Runner.java:828)
    at org.netbeans.modules.glassfish.tooling.admin.Runner.call(Runner.java:939)
    at org.netbeans.modules.glassfish.tooling.admin.Runner.call(Runner.java:73)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
INFO [org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment]
The module has not been deployed.
See the server log for details.
[catch] at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:259)
    at org.netbeans.modules.maven.j2ee.execution.DeploymentHelper.perform(DeploymentHelper.java:208)
    at org.netbeans.modules.maven.j2ee.execution.ExecutionChecker.executionResult(ExecutionChecker.java:93)
    at org.netbeans.modules.maven.execute.MavenCommandLineExecutor.run(MavenCommandLineExecutor.java:315)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)

Netbeans version: 8.2
Glassfish version: 3.1.2.2 (build 5)
Platform: reproducible on both Windows10 + Debian9
Maven version: 3.3.9
JDK: 1.7.0_80
Glassfish secure admin is enabled

生成的 EAR 通常可以使用 asadmin 命令部署到 Glassfish。只有在尝试通过 Netbeans 部署它时才会失败。

编辑

似乎当安全管理员被禁用时,我能够通过 Netbeans 执行部署。我遇到了安全管理员和 ssl 的一些问题。

这是我能找到的描述我遇到的问题的最佳答案:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206913035-Glassfish-3-1-remote-deploy-not-working(即使它是针对另一个 IDE)。

这不是一个公认的解决方案,因为安全管理员是日常开发工作的要求


编辑 2

在尝试了更多之后,我观察到了以下几点:

由于 Glassfish 日志为空,并且 netbeans IDE 日志包含与 HttpUrlConnection 相关的错误,我认为在 netbeans 完成构建过程后,它无法将 EAR 写入套接字。

  • 我已经对其他 EAR 项目进行了试验(从 netbeans 生成了一个新的 maven EAR),它可以将 OK 部署到 Glassfish。

  • 我看到一篇文章提到 Netbeans 中的一个错误,无法写入特定大小的档案。我试图生成一个具有较大最终 EAR 大小的新 maven 项目,但它可以部署。这个 bug 已经很老了,已经修复了:https://netbeans.org/bugzilla/show_bug.cgi?id=206946


编辑 3

在尝试使用 POM 文件并删除所有依赖项并尝试一一添加后,似乎此问题是由包含 EJB 依赖项触发的。

在 maven ear 插件模块部分包含 ejb 类型的依赖并将其声明为 ejbModule 似乎会触发问题。

<dependency>
    <groupId>com.foo</groupId>
    <artifactId>BAR</artifactId>
    <version>1.0</version>
    <type>ejb</type>
</dependency>
.
.
.
.
<ejbModule>
    <groupId>com.foo</groupId>
    <artifactId>BAR</artifactId>
    <altDeploymentDescriptor>AltDD.xml</altDeploymentDescriptor>
</ejbModule>

我仍然不知道为什么会触发此问题。我在网上看到文件大小可能有问题,但我无法重现它。

【问题讨论】:

  • 您如何通过 Netbeans 配置 asadmin 凭据?
  • 在服务面板 -> 服务器 -> 添加服务器:ibb.co/cZP0iw 上将服务器添加到 glassfish 时提交了服务器凭据

标签: java maven jakarta-ee netbeans glassfish


【解决方案1】:

这可能会在 Netbeans 在断点处停止时发生,然后某些部署可能会立即失败。

BUG-253630 提到了一个可重现的场景,例如用例:-

1. Run app with DoS off (DoS state MODULE_NOT_DEPLOYED)
2. Debug it
3. App stopped at breakpoint
4. Change source (DoS state SERVER_STATE_UNSUPPORTED)
5. Continue with the app (release breakpoint, detach JPDA)
6. Change source (DoS state MODULE_UPDATED)

另外,请确保对于远程管理,您必须在执行实际启用之前设置管理员密码:

asadmin change-admin-password --domain_name [DOMAIN_NAME]
asadmin enable-secure-admin --port [PORT_NAME]

..除此之外,您甚至可以尝试将密码设置为空,如果这也有帮助的话。

【讨论】:

  • asadmin change-admin-password 和 asadmin enable-secure-admin 在服务器安装后立即执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2015-03-12
相关资源
最近更新 更多