2015-01-10 4 views
1

Я обнаружил сегодня утром (2015-01-10), что я не могу развернуть свое приложение Java EE в GlassFish 4.1 без подключения к Интернету. Я понял этот факт, когда я попытался развернуть свои приложения и получил следующее сообщение об ошибке:Как устранить зависимость приложения GlassFish 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) 

По-видимому, несколько веб-сайтов Oracle, где вниз до около 8:30 по центральному времени сегодня утром, что мое приложение GlassFish Java EE зависит от того, проанализируйте файл glassfish-ejb-jar.xml во время развертывания приложения. Я заметил, что http://www.glassfish.org также привел к следующей странице сообщения об ошибке до тех пор, пока я снова не смог развернуть свое приложение.

я в настоящее время разработки приложения, так что я был в состоянии ждать веб-сайт (ы) для восстановления, прежде чем продолжить свое развитие без особых неудобств. Однако этот инцидент беспокоит меня о возможном развертывании приложения для запуска моей компании, потому что приложения должны запускаться и предпочтительно развертываться без подключения к Интернету.

Как определить зависимости интернет-приложений от приложения?

Как устранить интернет-зависимости моего приложения?

Следующий мой 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> 
+0

Я не могу воспроизвести это. Добавьте вопрос 'ejb-jar.xml' к вопросу. – unwichtich

+0

Я добавил EJB-jar.xml по запросу. Можете ли вы развернуть приложение Java EE без подключения к Интернету? –

+0

Да, это работает для меня. – unwichtich

ответ

1

Я нашел аналогичную должность по hzhang_jn на java.net форуме, который заявил следующее:

You might have a typo in your glassfish-web.xml when declaring the DOCTYPE....The DOCTYPE is used to resolve the declared dtd to the local repository and validate. When the DOCTYPE is wrong, it will try to go to internet and fetch the dtd...

Я тщательно сравнил DOCTYPE моего файла GlassFish-EJB-jar.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"> 

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 за вашу помощь!