2015-10-17 46 views
0

我已經將源1.8的.jar文件作爲靜態文件,以便客戶端通過JWS啓動。然而,當我嘗試更新我的應用程序,我收到以下錯誤:在jar中爲JWS服務java 1.8源代碼作爲靜態文件

無法更新應用程序:類文件是Java的8,但最大的支持就是Java 7:路徑對我-JAR

這似乎以表明gae將我的jar中的類識別爲servlet,只能用Java 7編寫,但它們不是,我也不打算將它們作爲servlet運行。

我的AppEngine-web.xml中看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
<application>projectid</application> 
<version>0.1</version> 
<threadsafe>true</threadsafe> 
<static-files> 
    <include path="/**.jnlp"/> 
    <include path="/**.jar"/> 
</static-files> 
<system-properties> 
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> 
</system-properties> 

我怎樣才能解決這個問題?

+0

不是真的,我沒有試圖運行Java 8 servlet,只是將Java 8 jar作爲靜態文件存儲,就像圖像或其他東西一樣,所以GAE不應該在意。 –

回答

2

source code here看有沒有辦法切換取消對Java版本的檢查 - 即使您只想提供JAR文件而不執行它。我相信支票是在App Engine SDK 1.9.25版本中引入的。我恢復到了App Engine SDK 1.9.24,並且能夠再次部署。

0

Static files and resource files DOC本節提出GAE有一些默認的邏輯來看待雙模式的文件,這可能與你看到的行爲:

By default, all files in the WAR are treated as both static files and resource files, except for JSP files, which are compiled into servlet classes and mapped to URL paths, and files in the WEB-INF/ directory, which are never served as static files and always available to the app as resource files.

appengine-web.xmlstatic-files部分,但沒有resource-files之一,這可能會使所有文件(包括您的.jar文件)被視爲資源,並因此受到GAE的版本檢查。

基於這個假設,我會嘗試添加一個resource-files部分,最終爲該.jar文件顯式排除規則。

我大多猜測,壽...

+0

不幸的是,這沒有奏效。我在新的資源文件標籤下添加了,並且仍然收到相同的錯誤。 –

1

我不知道幫你,因爲我發現了一個錯誤幾乎是喜歡你。關於 「類文件是Java的8,但最大支持是Java 7的」

In case of me as I use Eclipse to deploy my app engine project, I set the properties of project.

  1. Java編譯器:設置爲1.7版本。
  2. 項目方面:也設置爲1.7。

它解決了我的問題。 希望能幫到你。

+0

對我來說情況並非如此,該項目設置爲1.7源代碼,但它具有額外的源代碼爲1.8的靜態jar文件。 –