1

Eclipse と Azure SDK および Eclipse プラグインを使用して、Azure にデプロイしようとする Java Web アプリケーションがあります。Azureエミュレーターでアプリケーションを実行しようとすると. 次の恐ろしいエラーが表示されます。

[windowsazurepackage] cspack.exe: Error : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

I'm using Glassfish 3 and the Java 1.7 JDK. I have tried subst-ing the folder, so it's as short as possible. But nothing seems to help. It looks like the Glassfish or Java SDK result in too deep folders. I'm surprised In 2013 MS still hasn't solved this!

The following question seems to be the same. But the given answer is not helping, and I don't know how to give the original question renewed attention.

Azure Eclipse : cspack.exe: Error : The specified path, file name, or both are too long

As a reaction on the comment of Martin Sawicki, this is the log. And as you can see the path I'm using is very short. I even tried to subst, and use another drive for the projects, but then the plugin bombs with a nullpointer exception.

Buildfile: C:\A\azr\package.xml

checkResetScript:

resetEmulator:

createwapackage:
    [move] Warning: Could not find file C:\A\azr\dy to copy.
    [mkdir] Created dir: C:\A\azr\dy
[windowsazurepackage] Verified attributes.
[windowsazurepackage] Role "wrol1": Verifying the approot "C:\A\azr\wrol1\approot"
[windowsazurepackage] Role "wrol1": Importing components...
[windowsazurepackage]   Imported as 'jdk1.7.0_17' from "C:\Program             Files\Java\jdk1.7.0_17"
[windowsazurepackage]   Imported as 'glassfishv3' from "C:\Glassfish3\glassfishv3"
[windowsazurepackage]   Imported as 'OW-MobileClient-QNH.war' from "C:\A\azr\..\OW-MobileClient-QNH"
[windowsazurepackage] Role "wrol1": Finished importing components
[windowsazurepackage] Role "wrol1": Generating component deployment script...
[windowsazurepackage] Role "wrol1": Created internal startup script
[windowsazurepackage] Starting package generation...
[windowsazurepackage] Executing '"C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\bin\cspack.exe" "C:\A\azr\ServiceDefinition.csdef" /role:wrol1;"C:\A\azr\wrol1\approot" /out:"C:\A\azr\dy\WindowsAzurePackage.cspkg"'...
[windowsazurepackage] Process started
[windowsazurepackage] Windows(R) Azure(TM) Packaging Tool version 1.8.0.0
[windowsazurepackage] for Microsoft(R) .NET Framework 3.5
[windowsazurepackage] Copyright (c) Microsoft Corporation. All rights reserved.
[windowsazurepackage] C:\A\azr\ServiceDefinition.csdef: Warning  CloudServices040 : The 'schemaVersion' attribute is unspecified. Please set the attribute to avoid this warning.
[windowsazurepackage] cspack.exe: Error   : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
[windowsazurepackage] Waiting for process to exit..
4

2 に答える 2

1

残念ながら、ご想像のとおり、Windowsでは昔ながらのパスの長さの制限に直面しています。

興味深いことに、これをクラウドにデプロイした場合、エミュレーターで機能していなくても、実際には問題なく機能する可能性があります。これは、クラウドであるため、approotディレクトリ(デフォルトでペイロードが配置される場所)は単純にe:\approotです。ただし、ローカルコンピューターには、Eclipseプロジェクトが含まれるディレクトリがいくつかあり、Azure SDKがエミュレーターの展開用に作成するディレクトリがいくつかあります。Glassfishのフォルダー構造とファイル名もかなり深いため、簡単にヒットできます。その中のファイルの有効パスが長すぎます(> 260文字)。

そうは言っても、EclipseプラグインからWindows AzureエミュレーターでGlassfishを動作させる方法があります。これは私たちがテストしており、ユーザーがそれに遭遇する可能性を最小限に抑えるために、内部でいくつかの回避策を実装しています。

それにもかかわらず、この問題が発生している場合は、Glassfishプロジェクトについて、この問題が発生していない私のプロジェクトと何が違うのか疑問に思います。これが私がしていることです:

a)EclipseワークスペースにWindows Azureデプロイメントプロジェクトがあり、プロジェクトの有効なパスは次のとおりです。c:\ abcde \ fghi \ MyAzureProject(長さが重要です)

b)このプロジェクトを作成したとき、プロジェクトウィザードの[サーバー]タブで、解凍したGlassfishインストールを選択しました。これはC:\ abcde \ fghijklmopqr\glassfish3にあります。(このようにすることで、Glassfishのインストール方法に関するEclipseプラグインの知識に依存します)

c)次に、[エミュレータで実行]をクリックするだけで、すべてが正常に機能します。

まったく同じことをしているが、Eclipseのプロジェクトパスが私のものよりも長い場合(c:\ abcde \ fghi \ MyAzureProject --- 27文字)、Eclipseプロジェクトをより短い合計パス長で保存することが役立つかどうかを確認してください。

于 2013-03-21T20:18:39.013 に答える
1

すでにデプロイされているアプリのため、glassfish\domains\domain(X)... 内のフォルダー構造の深さである可能性があります。

私は Glassfish Server Open Source Edition 3.0.1 を実行していて、同じ問題に遭遇しました。最初はバージョン管理の問題だと思っていましたが、同じエディションのバニラ コピーをダウンロードした後、再パッケージ化して Azure エミュレーターにデプロイすることができました。問題ありませんでした。

于 2013-07-03T19:51:15.177 に答える