servicemix:我的osgi包在哪个端口上监听?

时间:2016-04-20 10:21:37

标签: osgi port apache-karaf spring-restcontroller apache-servicemix

作为servicemix / karaf的新手,我试图创建一个接受并返回REST请求的非常简单的程序。我上课的是:

package (....)

import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import (...).model.RSDocument;
import (...).model.RSDocumentResponse;

@RestController
public class DocumentService {

    @RequestMapping(value = "/rest/document", method = RequestMethod.POST,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody ResponseEntity<RSDocumentResponse> printDocument(
            @RequestBody RSDocument documentRequest)
    {
        System.out.println(documentRequest.getContent());
        RSDocumentResponse response = new RSDocumentResponse();
        response.setSuccess(true);
        return new ResponseEntity<>(response, HttpStatus.OK);
    }

}

我在Tomcat中有类似的工作。在Tomcat中,您可以通过在eclipse中双击服务器并在&#34; Ports&#34;中设置值来指定它将侦听传入请求的端口。部分。如何在Servicemix中设置端口,甚至找出它当前正在侦听的端口?我从Servicemix中的命令行成功启动了捆绑包。我的应用程序似乎没有监听80(Apache),8080(无)或8181(Servicemix控制台)

1 个答案:

答案 0 :(得分:1)

首先确保部署了Web容器。为此,请确保已安装war功能。

feature:list | grep war

如果未安装,请通过发出以下命令安装:

feature:install war

现在,请确保您的jar / war包含 Web-ContextPath Manifest条目,告诉Web容器要查找的上下文路径。如果您已安装并运行所有其他必需的软件包,包括所有依赖项,则应该能够导航到您的休息服务:

 localhost:8181/myContextPath/rest/document