小编zho*_*hou的帖子

以 Nginx 作为反向代理的 tomcat Web 应用程序的上下文路径

我正在尝试在以 Nginx 为前端的 tomcat 服务器上部署一个 Web 应用程序。我遇到的问题是我的jsp页面中的标签打印出“不正确”(从tomcat的角度来看是正确的)上下文路径。

我在 tomcat 上的 Web 应用程序部署在上下文路径:/webApp1 上,tomcat 在端口 8080 上运行。因此可以通过http://localhost:8080/webApp1访问该 Web 应用程序

我的nginx配置为proxy_pass如下:

location / {
    http://localhost:8080/webApp1;
}
Run Code Online (Sandbox Code Playgroud)

通过此配置,Web 应用程序应该使用 url http://localhost

这仅适用于主页文本。主页加载成功,但主页上的所有链接都有 /webApp1 前缀,因为 tomcat 认为它正在自行运行,因此输出 contextpath 作为所有链接的前缀。

以前有人解决过这个问题吗?

非常感谢所有答案。

z。

jsp tomcat reverse-proxy jstl nginx

5
推荐指数
1
解决办法
5308
查看次数

有没有办法将原始byte []反序列化为thrift对象而不知道它的thrift类型?

我正在运行一个需要的项目

  • 不同编程语言之间的相互通信(主要是java,c ++).
  • 可以序列化/反序列化为二进制格式和json格式.
  • IDL为不同语言生成类代码

虽然我们不需要其RPC功能,但Thrift完全符合这些标准.我们将通过MQ发送/接收序列化的thrift数据.序列化对象非常简单.但是,当涉及反序列化时,我们不能做这样的事情:

byte[] data = recv();
Object object = TDeserializer.deserialize(data);
if (object instanceof TypeA) {
    TypeA a = (TypeA) object;
} else if (object instanceof TypeB) {
    TypeB b = (TypeB) object;
}
Run Code Online (Sandbox Code Playgroud)

似乎我们必须告诉thrift它需要反序列化到哪个结构:

byte[] data = recv();
TypeA a;
TDeserializer.deserialize(a, data);
Run Code Online (Sandbox Code Playgroud)

只是想知道是否有办法在不知道其确切类型的情况下将原始数据反序列化为thrift对象.

谢谢!!

cross-platform thrift cross-language message-queue protocol-buffers

2
推荐指数
1
解决办法
3255
查看次数