2017-12-06 9 views
0

私はJboss EAP 6.4にWARパッケージをビルドし、WARパッケージをデプロイしました。私はサービスを作成し、ローカルのEclipseでspring-bootで実行していました。ブラウザで実行できますが、Jbossのeapのwarパッケージに基づいてそのURLにアクセスすると問題が発生します。私は成功してjbossサービスを実行しましたが、URLを実行することはできません。たとえば、URL:localhost:8080/letter-printing-eap-generator/testingをjbossで実行することはできませんが、実装する前にローカルeclipseで実行しています。この問題を解決するには? Mavenプロジェクトの任意のコンフィグレーションXML?私はちょうどjbossプラグインを追加します。ありがとう。私のコード:jboss eap 6.4 in mavenアクセスが失敗しました

私のpom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.prudential.letter.printing</groupId> 
    <artifactId>letter-printing-eap-generator</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <packaging>war</packaging> 

    <name>LetterPrintingEapGenerator</name> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.2.RELEASE</version> 
    </parent> 

    <properties> 
     <java.version>1.8</java.version> 
     <spring-cloud.version>1.2.2.RELEASE</spring-cloud.version> 
     <swagger.version>2.6.1</swagger.version> 
     <jboss.home>${env.JBOSS_HOME}</jboss.home> 
     <config.server>http://10.170.49.103/configserver</config.server> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
     </dependency> 

     <!-- Spring Boot --> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-config</artifactId> 
      <version>${spring-cloud.version}</version> 
     </dependency> 

     <!-- Swagger --> 
     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger2</artifactId> 
      <version>${swagger.version}</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger-ui</artifactId> 
      <version>${swagger.version}</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-data-rest</artifactId> 
      <version>${swagger.version}</version> 
     </dependency>  

     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.5</version> 
     </dependency> 

    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <!-- JBOSS maven plugin to simulate deployment to JBOSS --> 
      <plugin> 
       <groupId>org.jboss.as.plugins</groupId> 
       <artifactId>jboss-as-maven-plugin</artifactId> 
       <version>7.9.Final</version> 
       <configuration> 
        <jbossHome>${jboss.home}</jbossHome> 
        <serverArgs> 
         <serverArg>-Dspring.profiles.active=${run.profiles}</serverArg> 
         <serverArg>-Dspring.cloud.config.uri=${config.server}</serverArg> 
        </serverArgs> 
       </configuration> 
      </plugin>   
     </plugins> 
    </build> 
</project> 

SpringBootRestApiApp.java

@SpringBootApplication(scanBasePackages={"com.prudential.letter.printing"}) 
@Import({SpringDataRestConfiguration.class}) 
public class SpringBootRestApiApp { 
    public static void main(String[] args) { 
     SpringApplication.run(SpringBootRestApiApp.class, args); 
    } 
} 

私のコントローラ:

@RestController 
@RequestMapping(value="/") 
public class TestingController { 

    @GetMapping("testing") 
    public String getTestingMethod(){ 
     return "Hello Testing"; 
    } 

    @GetMapping("data") 
    public Map<String, Object> getData(){ 
     Map<String, Object> map = new HashMap<String, Object>(); 

     map.put("status", "200"); 
     map.put("message", "ini messagenya"); 
     map.put("content", "mantap"); 

     return map; 
    } 
} 

これは私のプロジェクト構造である:

project structure

application.yml:

server: 
    port: 8080 
    contextPath: /letter-printing-eap-generator 
+0

MavenがビルドするWARファイルの完全な名前は何ですか? –

+0

letter-printing-eap-generator-0.0.1-SNAPSHOT.war "mvn clean install"コマンドで作成しました –

答えて

0

任意の特定の構成が存在しない場合には、JBoss EAPは、WARファイル名と一致する名前を持つコンテキストで、Webアプリケーションへのアクセスを提供します。

<build> 
     <finalName>${project.artifactId}</finalName> 
     ... 
    </build> 

この:

http://localhost:8080/letter-printing-eap-generator-0.0.1-SNAPSHOT/testing 

開発目的のためにこれを変更する一般的な方法は、pom.xmlファイル内finalName要素を含めることです。

そのため、あなたのアプリケーションがでアクセスできる必要がありますletter-printing-eap-generator.warという名前のWARファイルが生成され、元のURLが機能するはずです。

また、あなたがcontext-root要素が含まれています(WEB-INFディレクトリにある)あなたの展開にjboss-web.xmlファイル追加することができます。あなたはまた、JBossのCLIまたはにWebコンソールを使用してこれを行うことが

<jboss-web> 
    <context-root>letter-printing-eap-generator</context-root> 
</jboss-web> 

を展開も実行します。

+0

私はすでにpomにfinalNameというタグを付けてURLにアクセスしましたが、まだ失敗しました。私はXML構成jbossを使用する必要がありますか?あなたはjboss-web.xmlとcontext-rootで完全な設定をしていますか?私はxmlファイルを置くフォルダはどこですか?ありがとう –

+0

'finalName'が動作していない場合、何かが間違っています。配備のルートにindex.htmlファイルがありますか? –

+0

いいえ.. xmlファイルを設定したり追加したりしません。ただjavaファイルを追加するだけです。私は構造プロジェクトの写真を添付し​​、私は私の質問に更新しました。ありがとう。 –

関連する問題