当前位置: 首页 > 知识库问答 >
问题:

如何消除我的GlassFish Java EE应用程序对互联网的依赖性?

海叶秋
2023-03-14

我今天早上(2015-01-10)发现,如果没有互联网连接,我无法在GlassFish 4.1中部署我的Java EE应用程序。当我尝试部署我的应用程序并收到以下错误时,我意识到了这一事实:

- java.io.IOException: Error parsing descriptor Deployment descriptor file META-INF/glassfish-ejb-jar.xml in archive [elis-ejb-0.0.1-SNAPSHOT_jar].   
at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:361)   
at com.sun.enterprise.deployment.util.DOLUtils.readRuntimeDeploymentDescriptor(DOLUtils.java:512) 
- ...
- Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://www.oracle.com/splash/java.net/maintenance/index.html   
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1838)   
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)

显然,直到美国中部时间今天早上08:30左右,几个Oracle网站才关闭,我的GlassFish Java EE应用程序在应用程序部署期间依赖这些网站来解析glassfish-ejb-jar.xml文件。我注意到http://www.glassfish.org也导致了下面的错误消息页面,直到我能够再次部署我的应用程序。

    < Li > http://www . Oracle . com/splash/Java . net/maintenance/index . html

我目前正在开发这个应用程序,所以我可以等到网站恢复后再继续开发,没有太多的不便。然而,这一事件让我担心运行我公司的应用程序的最终部署,因为应用程序需要运行,并且最好在没有互联网连接的情况下部署。

我如何识别我的应用程序的互联网依赖性?

如何消除应用程序的Internet依赖关系?

以下是我的ejb-jar.xml。

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd"
         version="3.2">
</ejb-jar>

下面是我的glassfish ejb jar。xml文件。

<!DOCTYPE glassfish-ejb-jar PUBLIC "-//GlassFish.org//
DTD GlassFish Application Server 3.1 EJB 3.1//EN"
"http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd">
<glassfish-ejb-jar>
    <display-name>elis-ejb</display-name>
</glassfish-ejb-jar>

共有1个答案

诸葛绍元
2023-03-14

我在java.net的一个论坛上发现了一个类似的hzhang_jn的帖子,内容如下:

您的glassfish web可能有一个拼写错误。声明DOCTYPE时的xml…DOCTYPE用于将声明的dtd解析到本地存储库并进行验证。当DOCTYPE错误时,它将尝试转到internet并获取dtd。。。

我仔细比较了glassfish ejb jar的DOCTYPE。xml文件与GlassFish 4.0应用程序部署指南中列出的文件完全相同。事实上,我相信我创建了我的glassfish ejb jar。通过剪切和粘贴指南中的xml文件。不管怎样,在我将三行DOCTYPE更改为一行之后,我能够在不访问互联网的情况下部署我的应用程序。

在没有互联网连接的情况下工作的DOCTYPE:

<!DOCTYPE glassfish-ejb-jar PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 EJB 3.1//EN" "http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd">

需要Internet连接的DOCTYPE:

<!DOCTYPE glassfish-ejb-jar PUBLIC "-//GlassFish.org//
DTD GlassFish Application Server 3.1 EJB 3.1//EN"
"http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd">

谢谢@unwichtich的帮助!

 类似资料:
  • 下面是我的代码: =================================================================================================== ===========================================================================================

  • 我们在这里添加模块中依赖的jar包、文件和模块,还可以配置它们的作用范围. build.gradle中配置的依赖我们在上面已经介绍过,这里再提一下下,这两个依赖配置的意思是指定编译时需要依赖libs目录下所有的jar文件和一个android组件. dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile

  • 我有一个Android注册应用程序。当移动设备和计算机都连接到同一个wifi上时,它运行良好。但是,如果移动设备的互联网连接关闭,则会出现一条吐司消息 'java.net.连接异常:2500ms后连接到/100.118.242.179(端口80)失败:isConnted失败: ECONNREFUSED(连接被拒绝)'。 如何在移动设备上没有互联网连接的情况下运行该应用程序?

  • 我有一个库,其中我从内部工件中排除了依赖项,当我在客户端应用程序中使用该库时,它会抛出一个java.lang.ClassNotFoundException:io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor 如何在我的应用程序中覆盖此排除而不排除此依赖项?

  • 在智能城市中,将区块链用于基于物联网的大型应用具有挑战性,例如,由于智能对象(传感器)生成的数据量大,以及在网络上造成高开销的大量“数据复制”,导致“区块链规模”持续增长。 Q1)在智能城市中,应对这些挑战的合适解决方案是什么? 我提出的想法是将智能城市划分为多个网络,通信最少,但问题是: Q2)哪个区块链平台可以用于低延迟数据交换?(例如,通过考虑多个权限BC,超分类账是一个好的选择吗?( Q3

  • 每一个教程,例子,甚至官方的谷歌描述都被弃用了。新布局在描述的位置没有功能按钮。