2015-09-22 121 views
1

我需要在Spring Integration中創建Restful API。我在https://github.com/spring-projects/spring-integration-samples/tree/master/intermediate/rest-http中找到了一個相同的示例但不知何故,這個示例對我而言不起作用。我想知道是否有任何方法在使用STS的Spring集成中創建Restful API。由於STS爲Spring集成提供了圖形,我們如何直接使用STS圖創建REST API。使用Spring工具套件在Spring集成中創建REST API

在此先感謝。

+0

當然您可以。你確切的問題是什麼? – luboskrnac

+0

我在STS中導入了Rest-http示例,運行了Spring Tools-> Update Maven dependencies,然後在Pivotal tc服務器上運行。我收到錯誤:org.springframework.beans.factory.BeanCreationException:創建名爲'integrationEvaluationContext'的bean時出錯:...我想使用Spring集成創建一個示例REST API,與本示例中給出的類似。我有更少的時間進行開發,我能否快速地使用STS來實現相同的示例。 – pogo22

+0

我建議您編輯您的問題以包含此信息。 「...不適合我......」不適合堆棧溢出。 –

回答

1

我不知道爲什麼你有樣品的麻煩,我只是測試它,它工作正常。 |

然而,可能是最簡單的方法是(使用最新版本> = 3.7)...

  1. 文件開始使用STS新... | Spring Starter Project
  2. 將名稱設置爲例如rest
  3. 下一步單擊
  4. 選擇WebIntegration(下IO)
  5. 單擊Finish
  6. 打開demo.RestApplication(其中Rest是大寫的名字從#2)
  7. 添加@ImportResource("classpath:context.xml")
  8. 在SRC創建context.xml /主要/資源
  9. 運行應用程序並在您的瀏覽器中點擊http://localhost:8080/foo/bar - 它無線我會輸出BAR

RestApplication:

@SpringBootApplication 
@ImportResource("classpath:context.xml") 
public class RestApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(RestApplication.class, args); 
    } 

} 

的context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:int="http://www.springframework.org/schema/integration" 
    xmlns:int-http="http://www.springframework.org/schema/integration/http" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd 
     http://www.springframework.org/schema/integration/http http://www.springframework.org/schema/integration/http/spring-integration-http.xsd"> 

    <int-http:inbound-gateway request-channel="in" 
      path="/foo/{id}" 
      supported-methods="GET" 
      request-payload-type="java.lang.String"> 
     <int-http:header name="requestedId" expression="#pathVariables.id" /> 
    </int-http:inbound-gateway> 

    <int:transformer input-channel="in" expression="headers['requestedId'].toUpperCase()" /> 

</beans> 

編輯

要進行部署戰爭,按照Spring Boot instructions 'Create a deployable war' here

但請參閱有關不支持servlet 3.x的舊servlet容器的注意事項。

下面是更新RestApplication類...

@SpringBootApplication 
@ImportResource("classpath:context.xml") 
public class RestApplication extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(RestApplication.class); 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(RestApplication.class, args); 
    } 

} 
+0

謝謝加里。這個例子來自STS。如果我需要將它作爲war文件部署在JBOSS服務器上,那麼我應該遵循哪些步驟。我做了mvn清理和安裝。但是我得到了「org.springframework.beans.factory.BeanDefinitionStoreException:IOException從ServletContext資源解析XML文檔[/context.xml];嵌套異常是java.io.FileNotFoundException:無法打開ServletContext資源[/context.xml]」錯誤。 – pogo22

+0

將'classpath:'添加到'@ ImportResource'並查看如何進行可部署戰爭的Spring Boot說明。我用鏈接編輯了答案 –

相關問題