3

私はEclipseでJavaScriptプロジェクトに取り組んでいます。静的な html ファイルと javascript ファイルは、サービスの安静なエンドポイントにアクセスする必要があるため、これらのエンドポイントを使用して Java プロジェクトに配置し、クロス ドメインの問題なしにアクセスできるようにしました。

しかし突然、HTML ファイルに変更を保存しようとすると、Java アプリケーションの実行を停止しない限り保存できません。

イベントのシーケンスは次のようになります。

Run java web app with Jetty

Can save changes to html file.

Open html file in chrome with url: http://127.0.0.1:8901/myapp/myapp-admin.html

Cannot save changes to html file.

Close chrome.

Still can't save changes.

Stop jetty running in eclipse.

Can save changes.

保存しようとすると、次のエラーが表示されます。

Save could not be completed. Try File > Save As... if the problem persists.

Reason:
Could not write file:
C:\{path to file}\myapp-admin.html

(The requested operation cannot be performed on a file with a user-mapped section open)

名前を付けて保存を使用してそのファイルを上書きしようとしても、次のエラーで機能しません。

Save could not be completed. Could not write file: {etc.}

html ファイルは次のとおりです。

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>


<title>myapp Admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <h1>myapp</h1>

</body>
</html>

私が変更した唯一のことは、これらが web.xml でどのようにマップされるかでした。基本的に、スプリングコントローラーなどを使用してスプリングウェイをレンダリングする前に.

今、私はそれらを静的にレンダリングしています:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>

しかし、なぜそれがこの種の問題を引き起こすのかわかりません。

Spring は次のようにマッピングされます。

<!-- Declare a Spring MVC DispatcherServlet as usual -->
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- Configure DispatcherServlet to use AnnotationConfigWebApplicationContext 
        instead of the default XmlWebApplicationContext -->
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>
          org.springframework.web.context.support.AnnotationConfigWebApplicationContext
      </param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

ここで何が問題なのかを理解するのを手伝ってくれる人はいますか?

4

3 に答える 3

7

Windows で従来のファイル ロックの問題が発生しています。(これは、UNIX、Linux、OSX のどのフレーバーでも発生しません)

Windows でロックされたファイルのトラブルシューティングのガイドラインに従って、特定の Web アプリケーションの Jetty の高度なパフォーマンス機能を無効にしてみてください。

(使用している Jetty のバージョンを指定しなかったため、Jetty 9 ドキュメントへのリンク)

于 2013-06-13T03:49:44.650 に答える