2017-05-31 6 views
1

Eclipseを使用してサーバー上で実行するJavaプロジェクトを開発しています。Eclipseは2つのJavaプロジェクトを結合します

1)jbosswildfly:RESTfulなサービスの数、およびMavenのPOMで構成されたJavaコードを持つ1私は2つのプロジェクトを持っています。

2)theWhoZoo-web:もう1つは、いくつかのhtmlファイルを含むWebプロジェクトです。

enter image description here

私はこれらのプロジェクトをマージし、ただ一つのプロジェクトを持っていると思います。 フォルダをtheWhoZoo-webからjbosswildflyにコピーしようとしましたが、サーバを起動しましたが、index.htmlにアクセスできません。質問

RESTfulなサービスだけでなく、index.htmlが同じサーバー上でアクセスされているように、これらの二つのプロジェクトをマージするための最良の方法は、どのようなものです

おかげで私は、JBoss index.html実行してみてください

UPDATEが、取得404

enter image description here

しかし、私はRESTfulなサービスの1呼び出し、それが返されます結果。

http://localhost:8080/jbosswildfly-1.0/category/list

しかし、

http://localhost:8080/jbosswildfly-1.0/index.html

戻り値:

14:23:31699 WARN [org.springframework.web.servlet.PageNotFound] (デフォルトタスク-4)いいえマッピングDispatcherServletのURIが [/jbosswildfly-1.0/index.html]のHTTPリクエストで見つかりました。

マイpom.xmlがあります

   <plugin> 
        <groupId>org.wildfly.plugins</groupId> 
        <artifactId>wildfly-maven-plugin</artifactId> 
        <version>1.0.2.Final</version> 
        <configuration> 
         <failOnMissingWebXml>false</failOnMissingWebXml> 
         <outputDirectory>webapps</outputDirectory> 
         <warName>ROOT</warName> 
        </configuration> 
       </plugin> 

       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.3</version> 
        <configuration> 
         <failOnMissingWebXml>false</failOnMissingWebXml> 
         <outputDirectory>deployments</outputDirectory> 
         <warName>ROOT</warName> 
        </configuration> 
       </plugin> 

web.xmlの

<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="3.1" 
     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/web-app_3_1.xsd" 
     metadata-complete="false"> 
    <!--  
     <servlet> 
      <servlet-name>rest</servlet-name> 
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
      <load-on-startup>1</load-on-startup> 
     </servlet> 
    -->   
     <servlet-mapping> 
      <servlet-name>rest</servlet-name> 
      <url-pattern>/*</url-pattern> 
     </servlet-mapping> 

</web-app> 

をWebAppInitializer.java

public class WebAppInitializer implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); 
     ctx.register(AppConfig.class); 
     ctx.setServletContext(servletContext); 
     Dynamic dynamic = servletContext.addServlet("rest", new DispatcherServlet(ctx)); 
     dynamic.addMapping("/*"); 
     dynamic.setLoadOnStartup(1); 
} 

答えて

0

まあ簡単なことするつもりはありません。

一般的なガイドとして、ソースコードとテストをコピーして開始し、未完成の依存関係をビルドして追加してください。(私の考えは、jbosswildflyを最初にソーホーに動かすことです)

次に、Webディレクトリを含むリソースを1つずつ追加します。 index.htmlおよびweb.xmlファイルを編集して、新しい構造を反映させます。

Webサーバーを起動し、ログに例外がないかどうかを確認します。試して、自分で修正していない場合は、stackoverflowに戻ってきてください。

1

あなたは、このようないない場合、あなたはそれを作成する必要があり、WebリソースのためtheWhoZoo-webjbosswildflyへのsrc/main/webappmavenとしてデフォルトのフォルダからWebContentフォルダの下にファイルを移動する必要があります。場合

あなたは、静的なWebファイルディレクトリとしてWebContentを維持したい場合は、あなたのようpom.xmlを設定できます。DispatchServletがIn .html、することができます

<servlet-mapping> 
     <servlet-name>rest</servlet-name> 
     <url-pattern>/**/*.do</url-pattern> 
</servlet-mapping> 

を無視するようにするには

... 
<build> 
<plugins> 
<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
      </configuration> 
</plugin> 
.... 

この場合、spring-mvcは* .do要求を傍受するだけで、.html要求はコンテナに正しくバイパスされます。

springプロジェクトに多数のリンクがある場合は、.htmlの内線番号を.jspに変更するのが簡単です。

.doが十分でない場合、あなたはより多くのような

<servlet-mapping> 
     <servlet-name>rest</servlet-name> 
     <url-pattern>/**/*.do</url-pattern> 
     <url-pattern>/category/*</url-pattern> 
     <url-pattern>/somethingelse/*</url-pattern> 
</servlet-mapping> 
+0

感謝を追加することができ、私はそれを試してみました。上記のUPDATEを参照して、すでに 'index.html'がありました。私は残念ながら404を得る。私はRESTfulサービスにアクセスすることができます。あなたは設定に問題があると思いますか? – Richard

+0

'spring-mvc'を使っているようです。コントローラーを作成して' index.html'をテンプレートとして使うか、 'web.xml'の' org.springframework.web.servlet.DispatcherServlet'サーブレットマッピングを変更してくださいDispatcherServletは '.html'拡張をバイパスすることができ、コンテナはそれを直接提供することができます。 –

+0

私の無知の事をお詫び申し上げますが、私はSpringを使ってRESTfulなサービスをフレームワーク化しています。 'index.html'を扱うために、' web.xml'ファイルに ''を追加しました(上記参照)。しかし、残念ながら変化はありません。それはあなたが意味することですか? – Richard

関連する問題