在Spring启动应用程序中集成Apache鳄梨酱

时间:2017-09-21 13:50:31

标签: java spring-boot guacamole

我遇到了一个项目Apache-Guacamole,它可以帮助您通过网络浏览器连接到remote computers。我正在尝试将其集成到spring-boot application,但无法这样做。

文档理解起来非常复杂。那么,任何人都可以提供实现它的方法。我从一周开始尝试这个,但无法完成它。

我在网上找到了一个servlet课程,但它无效。

任何帮助将不胜感激。请指导我。

谢谢。

2 个答案:

答案 0 :(得分:2)

实际上很简单。首先实现示例servlet from the official manual

然后将servlet类注释为@RestController(@Controller也可以使用),然后重写处理程序方法并设置url映射。

@Override
@RequestMapping(path = "tunnel", method = { RequestMethod.POST, RequestMethod.GET })
protected void handleTunnelRequest(HttpServletRequest request,
        HttpServletResponse response) throws ServletException {
    super.handleTunnelRequest(request, response);
}

然后您可以按照手册中的说明使用端点

答案 1 :(得分:0)

除了 cacacow 发布的内容之外,如果您使用的是较新版本的 Spring Boot,您可能需要在应用程序属性文件中包含以下内容。

spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false

server.tomcat.relaxed-query-chars={,},[,]

第一个防止崩溃org.apache.guacamole.net.SimpleGuacamoleTunnel["socket"]-> org.apache.guacamole.protocol.ConfiguredGuacamoleSocket["reader"] 第二个允许 guacamole 客户端发送带有 {}[] 字符的查询消息,新的网络服务器不再支持这些字符。

<块引用>

其实很简单。首先实现官方手册中的示例servlet 然后将 servlet 类注释为 @RestController(@Controller 也可以工作),然后 >覆盖处理程序方法并设置 url 映射。

<块引用>
@Override
@RequestMapping(path = "tunnel", method = { RequestMethod.POST, RequestMethod.GET })
protected void handleTunnelRequest(HttpServletRequest request,
       HttpServletResponse response) throws ServletException {
   super.handleTunnelRequest(request, response);
}

然后你可以使用手册中描述的端点