2017-01-12 3 views
0

У меня есть приложение java с приложением Spring с услугами RESRful.Java Spring Project на сервере Wildfly не может получить доступ к службам RESTful

Окна

У меня есть среда для Windows с Eclipse, и сервер JBoss Wildfly интегрирован.

enter image description here

В RESful услуги могут быть доступны успешно, например, с помощью http://localhost:8080/jbosswildfly/category/list.

OSX

Я недавно начал мигрировать это к среде OSX. У меня установлен Eclipse и сервер Wildfly.

enter image description here

я могу получить доступ http://localhost:8080/jbosswildfly/, который показывает сервер страницу приветствия. Однако я не могу получить доступ к службе RESTful через, например, http://localhost:8080/jbosswildfly/category/list (ERR_CONNECTION_REFUSED)

Вопрос

Как получить RESTful услуги для работы на в среде OSX?

Подробнее

Как вы можете видеть, в среде Windows, под сервером jbosswildfly, есть spring-web-4.3.1.RELEASE.jar, который не присутствует в среде OSX.

В среде Windows я создал проект Java с нуля, но в среде OSX я импортировал существующий проект из репозитория OpenShift Git. Исходный код в двух средах идентичен.

Проект построен с использованием Maven и имеет все необходимые зависимости.

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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> 

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

    <groupId>jbosswildfly</groupId> 
    <artifactId>jbosswildfly</artifactId> 
    <packaging>war</packaging> 
    <version>1.0</version> 
    <name>jbosswildfly</name> 

    <repositories> 
     <repository> 
      <id>eap</id> 
      <url>http://maven.repository.redhat.com/techpreview/all</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>eap</id> 
      <url>http://maven.repository.redhat.com/techpreview/all</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </pluginRepository> 
    </pluginRepositories> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <java.version>1.8</java.version> 
     <maven.compiler.fork>true</maven.compiler.fork> 
     <project.build.directory>${project.basedir}/target</project.build.directory> 
     <springframework.version>4.3.1.RELEASE</springframework.version> 
     <hibernate.version>5.2.1.Final</hibernate.version> 
     <mysql.connector.version>5.1.31</mysql.connector.version> 
     <junit.version>4.12</junit.version> 
     <jackson.version>2.4.2</jackson.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.postgresql</groupId> 
      <artifactId>postgresql</artifactId> 
      <version>9.2-1003-jdbc4</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>${mysql.connector.version}</version> 
     </dependency> 

     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> 
      <version>${springframework.version}</version> </dependency> --> 

     <!-- Spring boot --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <version>1.3.5.RELEASE</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <version>1.3.5.RELEASE</version> 
      <scope>test</scope> 
     </dependency> 

     <!-- Spring test --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${springframework.version}</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.5.2</version> 
     </dependency> 

     <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 

     <!-- <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> 
      <version>1.6.2</version> <type>jar</type> </dependency> --> 

     <!-- jsr303 validation --> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> 
     </dependency> 

     <!-- Servlet+JSP+JSTL --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>4.0.0-b01</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>javax.servlet.jsp-api</artifactId> 
      <version>2.3.2-b02</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <!-- JSON --> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-annotations</artifactId> 
      <version>${jackson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>${jackson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
      <version>${jackson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.datatype</groupId> 
      <artifactId>jackson-datatype-jsr310</artifactId> 
      <version>${jackson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
      <version>${jackson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20160810</version> 
     </dependency> 

     <!-- Sockets --> 
     <dependency> 
      <groupId>com.corundumstudio.socketio</groupId> 
      <artifactId>netty-socketio</artifactId> 
      <version>1.7.1</version> 
     </dependency> 

     <!-- Apache --> 
     <dependency> 
      <groupId>org.apache.opennlp</groupId> 
      <artifactId>opennlp-tools</artifactId> 
      <version>1.6.0</version> 
     </dependency> 

     <!-- Test --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 
     <dependency> 
      <groupId>org.skyscreamer</groupId> 
      <artifactId>jsonassert</artifactId> 
      <version>1.3.0</version> 
      <scope>test</scope> 
     </dependency> 

    </dependencies> 

    <profiles> 
     <profile> 
      <!-- When built in OpenShift the 'openshift' profile will be used when 
       invoking mvn. --> 
      <!-- Use this profile for any OpenShift specific customization your app 
       will need. --> 
      <!-- By default that is to put the resulting archive into the 'deployments' 
       folder. --> 
      <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html --> 
      <id>openshift</id> 
      <build> 
       <finalName>jbosswildfly</finalName> 
       <plugins> 

        <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> 

        <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> 
         </plugin> --> 
        <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> 
         </plugin> --> 


       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 

UPDATE

Одна вещь, которую я заметил, что в среде Windows, папка target содержит ряд генерируемых артефактов, но в среде OSX , в папке target.

+0

Что произойдет, если в вашем Eclipse вы щелкните правой кнопкой мыши на своем проекте и выполните проект Maven> Update, а затем переиздаете на сервер? –

+0

Спасибо Val Bonn, я попробовал, но когда я попытаюсь получить доступ к службе RESTful, я получаю: 404 - Not Found – Richard

+0

И весна-web-4.3.1.jar все еще не появляется под jbosswildfly?Вы уверены, что видите эту банку в своем дереве проектов в разделе Ресурсы Java> Библиотеки> Зависимости Maven? Вы можете найти эту библиотеку в каталоге «target» в вашей файловой системе? И, на вашем сервере, вы можете попробовать «Добавить и удалить» приложение? –

ответ

1

Как вы замечаете в своем UPDATE, если target пуст, это связано с тем, что проект не скомпилировался.

Вы должны установить maven на свой OSX.

+0

Я только что установил maven. Я запустил 'mvn clean install' с терминала и успешно его построил. Теперь есть и артефакты в папке 'target', сгенерированной из сборки. Тем не менее, я до сих пор не могу получить доступ к службам RESTful ('not found'). Кроме того, 'spring-web-4.3.1.RELEASE.jar' не отображается в' jbosswildfly' на сервере в Eclipse. Я также попробовал «Maven -> Update Project» в Eclipse. – Richard

Смежные вопросы