这个问题已经被问过了,但从那时起,所有的答案(我能找到)都不再有效。
本质上,我想用Vaadin(V23)实现一个网站,该网站通过另一台服务器(物理)上运行的POST请求与WebApp进行通信。为此,我想创建单独的Servlet来处理与另一台服务器的通信(接收方)。比如说,这不是嵌入式版本:
@WebServlet(urlPatterns = "/communication", name = "QuizServlet", asyncSupported = true)
public class QuizServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendError(400, "Not implemented");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendError(400, "Not implemented");
}
}
然而,问题是,无论我做什么,我总是被重定向到默认的dispatcher Servlet:
>
SpringVaadinServlet已弃用,不再存在,扩展VaadinServlet不起作用。
更改属性中的映射(vaadin.url-映射=
)也不起作用,我只是在所有情况下都被重定向到这个新映射。
尝试在单独的端口上执行Servlet会在所有端口上产生相同的重定向,即使在连接器上显式注册我的自定义Servlet,也会使用单独的服务(webmvcconfiguer
Tomcat配置)。这个帖子的答案,也太老了。
直接注册servlet也不会做任何事情(通过实现WebApplicationInitializer)。
有一个问题是,如何在新的Vaadin 23和Spring Boot 2.7.1中使用两个不同的servlet?
我找到了解决我问题的办法。也就是说,在启动bootapplication时,我还启动了使用自定义Servlet的第二个单独的Tomcat服务器:
@Service
public class QuizServer {
private final Log log = LogFactory.getLog(QuizServer.class);
@PostConstruct
public void startServer() throws IOException, LifecycleException {
start();
}
private void start() throws IOException, LifecycleException {
Tomcat tomcat = new Tomcat();
String contextPath = "/";
String appBase = new File(".").getAbsolutePath();
Context ctx = tomcat.addContext(contextPath, appBase);
Tomcat.addServlet(ctx, "quizServlet", new QuizServlet());
ctx.addServletMappingDecoded("/*", "quizServlet");
tomcat.setPort(8085);
tomcat.start();
tomcat.getConnector();
log.info("Quiz server started");
}
}
@WebServlet(urlPatterns = "/*", name = "quizServlet", asyncSupported = true)
public class QuizServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("Test");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendError(400, "Not implemented");
}
}
不过,它有点粗糙,因为理想情况下,它不应该需要单独的服务器。
我有一个正在构建的搜索结果页面,它将帖子分为三个类别(产品、食谱、文章),在页面的下面三个单独的部分。类别(菜谱和文章)很好,也很简单——创建一个查询以在两个单独的循环中使用,但是我在自定义帖子类型方面遇到了问题。 如果可能的话,我想在循环中引入这些,但不确定是在post类型上还是在分类法上这样做。很明显,这些产品在分类法下被划分为子类别,所以当我尝试它时,它多次拉同一个产品。 现在,我已经放弃了
我已经搜索了又搜索,除了我称之为“hack方法”的方法之外,找不到其他方法将自定义分类添加到自定义管理菜单中。 然后我注册我的帖子类型并确保它们使用 这可以工作,自定义帖子类型显示在我的自定义菜单中。 但是自定义分类法不接受同一属性的字符串,只接受true或false。 因此,要添加它,您必须创建一个子菜单页 这是一种“黑客”方式。 还有别的办法吗?如果不修改WordPress核心,我可以覆盖re
控制器名称:Controller1,自定义标头:Header1 应为特定控制器下的所有 API 显示标头
我有一个WordPress菜单,其中有一些菜单项是我通过标准(拖放)WordPress管理菜单功能添加的。最近,我不得不在菜单中添加另一项,以生成动态href链接。我在函数中使用以下代码实现了这一点。php文件: //将“我的个人资料”菜单项动态添加到“成员”菜单(根据当前登录的用户生成用户名) add_filter(wp_nav_menu_items、add_profilelink_in_men
问题内容: 我想制作一个简单的表,其中包含一行自定义按钮。当按下按钮时,我想弹出一个“警告”框。我已经阅读了一些关于此的文章,我不明白为什么我的代码无法正常工作。绘制了按钮,但按下按钮无效。 我在这里描述了三种尝试。 版本1。单击按钮不会触发: HTML代码: 编辑8/2/12-自从我的原始文章以来,我已经学到了一些东西,在这里我描述了另外两次尝试。 版本2:我使用onCellSelect。这行得
应用可以通过manage.py注册它们自己的动作。例如,你可能想为你正在发布的Django应用添加一个manage.py动作。在本页文档中,我们将为教程中的 polls应用构建一个自定义的 closepoll命令。 要做到这点,只需向该应用添加一个management/commands目录。Django将为该目录中名字没有以下划线开始的每个Python模块注册一个manage.py命令。例如: p