问题标签 [web-fragment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - 使用两个 Web 片段部署 Web 应用程序时出错
我试图在我的网络应用程序中使用两个网络片段,在部署时我收到以下错误:
我尝试更改 web-fragment.xml 的名称和显示标签值,但错误仍然存在。当我在我的 pom 中只使用一个网络片段时,它工作正常。
这是两个网络片段:wf1
wf2
这是具有两个依赖项的 pom 块。
我认为问题出在 web-fragment.xml 中。有人可以帮助我吗?
spring - 分别从 web.xml 和 web-fragment.xml 定义上下文参数
我有一个使用多个 web 片段的主要 webapp 项目。它在 Tomcat 8 上运行。
在我的web.xml文件中,我有一个对主要 Spring 上下文的引用,例如:
在WEB-INF/lib
文件夹中,我有一个在它自己的文件夹下componentA.jar
包含一个web-fragment.xmlMETA-INF
的文件夹(不同于主应用程序的META-INF
文件夹):
但是,似乎 Spring 在 jar 中找不到我的 compomentA_Ctx.xml。进一步阅读后,似乎是因为contextConfigLocation
2 个上下文文件中存在名称冲突。
我的目标是为组件提供可插入性,使其独立于主 webapp。因此我想单独加载它的上下文。
无论如何让Spring在这两个位置寻找上下文?或者一种在web.xml和web-fragment.xml中分别定义上下文的方法?
maven - 如何开始创建 Web 应用程序片段?
当我创建一个屏幕来显示一些数据时,我一直在做一个 Maven 项目。我已经完成了所需的网页,但是我被要求将网页放入应用程序片段中。我已经完成了一个 Web 应用程序,但我很困惑“如何使用 maven 和 JSF 启动 Web 应用程序片段?” 谢谢。
intellij-idea - IntelliJ 中 Web 片段项目中的热重新部署文件
我有一个包含不同模块的项目。事实上,我有 4 个模块:
- 演示文稿-jsf
- 存储库-oracle
- 服务
- 网络应用
见下图:
我正在开发一个库,供我所在公司的其他团队使用。因此,我们不能在 webapp 模块中添加 xhtml 文件。我们决定这样做是因为作为一个图书馆,我们希望保持这种方式。我们正在使用带有巴塞罗那主题的Primefaces 6.1。另外,我将 JSF2 与 Tomcat 一起使用。
WebApp 完全是空的,因为客户将在他们的 Web 应用程序中使用它。因此,我拥有 .xhtml 文件的模块是presentation-jsf。在里面,我有所有的xhtml文件:
问题是当我在没有任何客户端的情况下执行webapp本身时,应用程序运行良好(我可以访问http://localhost/web/app/view.xhtml文件)。我不需要任何客户的项目来使用该库。我可以直接将它用作 web 应用程序。但主要问题是我无法进行热重新部署。这意味着所有 xhtml 格式的文件都不起作用。
当然,当我使用我的任何客户端时,应用程序不会进行任何热重新部署,因为它们将其用作战争文件(库)。出于这个原因,我认为不可能进行热部署。
我正在使用Intellij。出于这个原因,也许有一些方法可以在热复制文件。如果我必须做任何更改,我必须重新启动服务器,有时,我必须执行 maven 全新安装来清理它。
java - Servlet 3 web 片段 - 不从 META-INF 中的文件夹提供静态内容
我无法确定我是否没有正确理解 Servlet 3.0 规范,或者 Tomcat 中是否存在错误。
这是我的情况。我有一个包含 jar 项目的 Web 应用程序。Web 应用程序使用 Jersey 2.9 定义了一组 REST 端点。jar 项目还定义了 REST 端点(也使用 Jersey 2.9),并且在 META-INF/resource 目录中具有静态内容。jar 中 META-INF 目录的结构如下所示:
我在 Tomcat 8.5.16 上运行它。当我运行它时,我得到以下结果:
- WAR REST 端点:成功
- JAR REST 端点:成功
- /test.html: 成功
- /testfolder/test2.html - 失败并出现 404
WAR 项目没有静态内容,所以我没有发生冲突。我检查了 WAR 中的 JAR 文件,它包含上面显示的结构。
关于为什么提供顶级 html 文件而不是文件夹中的文件的任何想法?
java - 给定一个 JAR 文件,据称包含 Web 服务器,我该如何部署它?
我收到了一个 JAR 文件,告诉我它包含一个 Web 应用程序,并指示我部署它。我熟悉 java 作为一种语言,但我几乎没有使用它的 web 生态系统的经验。尝试将它作为可执行文件运行,我发现它没有主类,所以我查看了内容,发现它有一个META-INF/web-fragment.xml
文件,以及几个 Servlet 类和 xml 中引用的一些配置文件。看起来这里基本上有一个完整的应用程序的所有东西,但我不知道如何实际部署它,谷歌只提供有关如何使用 IDE 从头开始构建这些东西并使用 maven 插件和目标进行部署的教程。
假设从源代码构建是不可能的,并且我只有标准的 unix 和 java CLI 工具可用,基于提供的信息(如果需要我可以提供更多),那么启动和运行它的最简单方法是什么?
java - 如何管理来自消费应用程序的 JAR 依赖项
我创建了两个 JAR 文件。第一个包含调度服务的核心逻辑。第二个是一个 Web 片段项目,其中包含一个可选的 JSF 表示层。每个都在各自的 LIB 文件夹中包含自己的依赖项,并在其构建路径中引用它们。当我在消费者应用程序中包含打包的 JAR 时,我发现自己必须向消费者添加已经打包在每个 JAR 中的依赖项。有没有办法让我的 JAR 文件“自我维持”,因为消费者应用程序不需要去寻找这些依赖项并将它们添加到它的结构中?
servlets - Servlet 过滤器未初始化,url 映射在 web 片段中不起作用?
我有一个带有战争网络应用程序的 .ear,它由 n 个网络片段罐子组成。在使用 url 模式映射过滤器时,我不知何故无法让我的 servlet 过滤器调用 doFilter 甚至 init 方法。我正在使用一个映射到应用程序根目录并过滤每个请求的 shiro 过滤器。这个过滤器实际上是有效的,并且 shiro-filter 的代码被执行:
当我尝试在另一个 web-fragment.xml 中注册以下过滤器并调用 localhost:8080/application-name/myservice/getMyData 它只是忽略提供的 url-pattern:
上述过滤器触发器都没有......我还尝试了不同的 url 模式,例如:
我究竟做错了什么?没有证据表明 url-patterns 不适用于规范中的 web-fragments:http: //download.oracle.com/otn-pub/jcp/servlet-3_1-fr-eval-spec/servlet-3_1-final .pdf?AuthParam=1539621798_87c76bcc77456ce463d523d10f4ac5e1
我知道我也可以通过 servlet-mapping 绑定过滤器,但我真的不想用 GetToPostFilter 过滤来自 MyService 的所有请求,只过滤 .../getMyData 上的那些请求
java - Servlet 3.0 web-fragment 提供静态内容
我有一个包含许多 Web 项目 (WAR) 使用的 swagger-ui 的 Web 片段。swagger-ui 的静态内容位于META-INF/resources
. 一些 Web 项目仅提供 REST-API,没有自己的 UI。对于这类项目,web-fragment 有效,因为静态内容是在${CONTEXT-ROOT}/*
. 但是对于具有自定义 UI 的项目,${CONTEXT-ROOT}/*
我不知道如何在${CONTEXT-ROOT}/api/*
.
是否有可能更改在主 Web 项目中提供 Web 片段的静态内容的位置?
spring-mvc - Spring-MVC - 从 web-jar 加载静态资源导致 WebSphere Liberty 中的异常
我们正在将 JEE 企业应用程序从 WebSphere 移植到 Liberty 19.0.0.6。为了共享静态资源(此处为 PNG 图像),我们使用 web-fragment jar-library,其中包含位于 META-INF/resources 包中的图像。我们的 UI 使用 Spring-MVC 映射到的 DispatcherServlet,它应该处理 Image 的负载。它使用 DefaultServletHttpRequestHandler 源代码做得很好。(您可以在此处找到源代码)。
但是在这个类中,Spring MVC 正在检测 Web 服务器,以转发加载图像的请求。这会在 WebSphere Liberty 服务器中导致映射冲突异常,但服务器会传送映像。无论如何,你会得到大量的堆栈跟踪(控制台、日志……)。
我们正在与 IBM Support 讨论这个问题。该解决方案在以前的服务器 WebSphere 传统上运行良好,但不再在 Liberty 上运行。目前的状态是,IBM 认为 Spring-MVC 在不受支持的场景中使用服务器内部类。
[错误] SRVE0777E:Es wurde eine Ausnahme von der Anwendungsklasse 'com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.service:1.605' ausgelöst。javax.servlet.ServletException:java.lang.Exception:com.ibm.ws.webcontainer.osgi.servlet.EntryServletWrapper@356db043 的映射冲突:目标 com.ibm.ws.webcontainer.osgi.servlet.EntryServletWrapper@df6117c8 已存在于com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.service(DefaultExtensionProcessor.java:1605) 的节点图像在 [internal classes] at org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler.handleRequest(DefaultServletHttpRequestHandler.java:122) 在org.springframework.web.servlet 中的 org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51)。
WebSphere Liberty 服务器是否已经知道该问题,是否有其他软件项目受此问题影响?在我们看来,现在这意味着 Liberty 服务器上不完全支持 Spring-MVC。所以我们要么需要不同的服务器,要么必须迁移出 Spring-MVC。你在这里的观点是什么?您是否正在使用 IBM 的内部代码,但它不再起作用了?如果是这样,那可以在 Spring-MVC for Liberty 服务器中修复。