2017-01-12 5 views
0

Я создал простой файл API RAML с одним GET, никаких параметров не требуется, и он возвращает простую полезную нагрузку. Я потянул это в свой проект правильно с Anypoint Studio (последний на прошлой неделе), и создал и запускал проект локально без заминки. У меня есть время выполнения мула в помещении 3.8.3, которое я заархивировал и успешно развернул. Я могу увидеть его в каталоге/apps с правильным .txt-файлом, и я вижу его в Mule Mgmt Console в качестве развернутого приложения на моем сервере. Я просто не могу назвать это правильно? Можете ли вы сделать это с помощью развернутого проекта APIKit во время выполнения mule? Моя простая настройка ниже и работает (конечно) без работы в студии Anypoint в режиме Run и Debug.Вызов проекта APIKit, развернутого во время выполнения Mule 3.8.3 без шлюза API

enter image description here

Я называю http://localhost:8081/api/testthis как мой URL штраф, но когда я иду к моей mulesoft серверу, где я развернутое это и называю, что IP http://x.x.x.x:8081/api/testthis только получить полезную нагрузку назад он не показывает слушателя. Мне не хватает шага или конфигурации или чего-то еще, я просто не могу найти их DOC или SO-сайт, чтобы найти проблему.

Любая помощь приветствуется (даже если саркастично!).

<?xml version="1.0" encoding="UTF-8"?> 
<mule xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core 
http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/http  
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/apikit 
http://www.mulesoft.org/schema/mule/apikit/current/mule-apikit.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 
     <http:listener-config name="testapi-httpListenerConfig" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/> 
    <apikit:config name="testapi-config" raml="testapi.raml" consoleEnabled="false" doc:name="Router"/> 
    <flow name="testapi-main"> 
     <http:listener config-ref="testapi-httpListenerConfig" path="/api/*" doc:name="HTTP"/> 
     <apikit:router config-ref="testapi-config" doc:name="APIkit Router"/> 
     <exception-strategy ref="testapi-apiKitGlobalExceptionMapping" doc:name="Reference Exception Strategy"/> 
    </flow> 
    <flow name="testapi-console"> 
     <http:listener config-ref="testapi-httpListenerConfig" path="/console/*" doc:name="HTTP"/> 
     <apikit:console config-ref="testapi-config" doc:name="APIkit Console"/> 
    </flow> 
    <flow name="get:/testthis:testapi-config"> 
     <set-payload value="[ {&quot;code&quot;: &quot;MyCode1&quot;, &quot;name&quot; : &quot;My Code 1&quot;, &quot;ID&quot; : &quot;1111&quot; }, {&quot;code&quot;: &quot;MyCode2&quot;, &quot;name&quot; : &quot;My Code 2&quot;, &quot;ID&quot; : &quot;2222&quot; } ]" doc:name="Set Payload"/> 
    </flow> 
    <apikit:mapping-exception-strategy name="testapi-apiKitGlobalExceptionMapping"> 
     <apikit:mapping statusCode="404"> 
      <apikit:exception value="org.mule.module.apikit.exception.NotFoundException" /> 
     <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/> 
     <set-payload value="{ &quot;message&quot;: &quot;Resource not found&quot; }" doc:name="Set Payload"/> 
    </apikit:mapping> 
    <apikit:mapping statusCode="405"> 
     <apikit:exception value="org.mule.module.apikit.exception.MethodNotAllowedException" /> 
     <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/> 
     <set-payload value="{ &quot;message&quot;: &quot;Method not allowed&quot; }" doc:name="Set Payload"/> 
    </apikit:mapping> 
    <apikit:mapping statusCode="415"> 
     <apikit:exception value="org.mule.module.apikit.exception.UnsupportedMediaTypeException" /> 
     <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/> 
     <set-payload value="{ &quot;message&quot;: &quot;Unsupported media type&quot; }" doc:name="Set Payload"/> 
    </apikit:mapping> 
    <apikit:mapping statusCode="406"> 
     <apikit:exception value="org.mule.module.apikit.exception.NotAcceptableException" /> 
     <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/> 
     <set-payload value="{ &quot;message&quot;: &quot;Not acceptable&quot; }" doc:name="Set Payload"/> 
    </apikit:mapping> 
    <apikit:mapping statusCode="400"> 
     <apikit:exception value="org.mule.module.apikit.exception.BadRequestException" /> 
     <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/> 
     <set-payload value="{ &quot;message&quot;: &quot;Bad request&quot; }" doc:name="Set Payload"/> 
    </apikit:mapping> 
    </apikit:mapping-exception-strategy> 
</mule> 

Вот где он показывает, что он развернут zip file deployed under mule apps directory

И это, как MMC видит он развернут на нашем 1 Dev сервере. MMC showing deployed application

RAML, который я использовал для создания проекта:

#%RAML 0.8 
title: mmctest 
version: 1.0 

/testthis: 
    get: 
    queryParameters: 
     code: 
      displayName: "Code" 
      type: string 
      description: "The code to pass through on a querystring" 
      required: false 
    responses: 
     200: 
     body: 
      application/json: 
      example: | 
       [ {"code": "MyCode1", "name" : "My Code 1", "ID" : "1111" }, {"code": "MyCode2", "name" : "My Code 2", "ID" : "2222" } ]    

И мой мул-config.xml, что он должен иметь, чтобы развернуть это просто файл оболочки. mule-config.xml file for deployment

+0

Не могли бы вы показать свой полный XML? Также убедитесь, что ваш 'host = '0.0.0.0" 'вместо localhost –

+0

Прошу прощения, я забыл поместить XML. Я отредактировал выше, чтобы показать это. Единственное, что я хочу сделать, это вернуть данные в полезную нагрузку. Но позвоните ему из среды выполнения мула. –

+0

Ну, просто чтобы убедиться ... какой у вас RAML-файл выглядит как ... Я хочу сравнить с потоком, генерируемым –

ответ

0

У меня было две вещи неправильно с моей настройкой. Поэтому я приношу свои извинения Арирбану за то, что я не тороплюсь.

  1. У меня было еще одно приложение уже по порту 8081. Поэтому мне пришлось сменить порт на 8080.
  2. Я не архивировал свой проект правильно для развертывания, поэтому исправил его. Экспорт в Mule> Проект Anypoint Studio для Mule Развертываемый архив

Когда я сделал это правильно, все было в порядке. Поэтому мне нужно следить за этим и убедиться, что я правильно использую действующий порт, который не используется.

+0

Отличный ... никаких проблем с этим .. PLS принять ваш собственный ответ и закрыть вопрос :) –

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

  • Нет связанных вопросов^_^