Jetty 通过 Maven 正确运行,但作为 jar 运行不正确

2024-04-13

(如果我的标题具有误导性/不正确,请提出更具描述性的内容,这是我能想到的最好的内容)

我已经使用 spring roo 创建了自己的网络应用程序,但尚未编辑任何代码。我正在使用 Maven 和 jetty 构建并运行 Web 应用程序。当我执行以下操作时,一切正常。

mvn jetty:run

然而,当我打包然后直接运行jar时,我遇到了一些奇怪的问题。

mvn package
java -jar target/dependency/jetty-runner.jar target/*.war

(与“mvn jetty:run-exploded”相同)

主页按预期加载,但是当我单击其中一个导航链接(以创建或列出我的模型)时,我最终会在浏览器中打印这些错误(http://localhost:8080/pages/main.jsf)

HTTP ERROR 500

Problem accessing /pages/main.jsf. Reason:

/pages/nameMeaning.xhtml @25,80 value="#{applicationBean.getColumnName(column)}" Error Parsing: #{applicationBean.getColumnName(column)}
Caused by:

javax.faces.view.facelets.TagAttributeException: /pages/nameMeaning.xhtml @25,80 value="#{applicationBean.getColumnName(column)}" Error Parsing: #{applicationBean.getColumnName(column)}
at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:401)
at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:351)
at com.sun.faces.facelets.tag.jsf.ValueHolderRule$DynamicValueExpressionMetadata.applyMetadata(ValueHolderRule.java:129)
at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:398)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:159)
...
Caused by: javax.el.ELException: Error Parsing: #{applicationBean.getColumnName(column)}
at com.sun.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:171)
at com.sun.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:188)
at com.sun.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:232)
at com.sun.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:92)
at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:385)
... 95 more
Caused by: com.sun.el.parser.ParseException: Encountered "(" at line 1, column 32.
Was expecting one of:

"}" ...
"." ...
"[" ...
">" ...
"gt" ...
"<" ...
"lt" ...
">=" ...
"ge" ...
"<=" ...
"le" ...
"==" ...
"eq" ...
"!=" ...
"ne" ...
"&&" ...
"and" ...
"||" ...
"or" ...
"*" ...
"+" ...
"-" ...
"?" ...
"/" ...
"div" ...
"%" ...
"mod" ...


at com.sun.el.parser.ELParser.generateParseException(ELParser.java:1664)
at com.sun.el.parser.ELParser.jj_consume_token(ELParser.java:1544)
at com.sun.el.parser.ELParser.DeferredExpression(ELParser.java:147)
at com.sun.el.parser.ELParser.CompositeExpression(ELParser.java:74)
at com.sun.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:139)
... 99 more
Caused by:

请在此处查看 pom.xml 文件:http://pastebin.com/6aPpYP47 http://pastebin.com/6aPpYP47


看了你的pom.xml http://pastebin.com/6aPpYP47很明显,您正在运行不同版本的 Jetty。这可能是也可能不是问题的根本原因,但随着不同版本实现不同版本的 Servlet 容器规范,您可能会发现 Servlet 3.0 功能适用于 Jetty 8,但不适用于 Jetty 7(这是 Servlet 2.5 IIRC)

如果你查看你的插件配置:

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.4.v20120524</version>
            <configuration>
                <webAppConfig>
                    <contextPath>/${project.name}</contextPath>
                </webAppConfig>
            </configuration>
        </plugin>

你会注意到jetty:run将使用 Jetty8.1.4.v20120524而当你注入 jetty-runner 时

       <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.3</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals><goal>copy</goal></goals>
              <configuration>
                <artifactItems>
                  <artifactItem>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-runner</artifactId>
                    <version>7.4.5.v20110725</version>
                    <destFileName>jetty-runner.jar</destFileName>
                  </artifactItem>
                </artifactItems>
              </configuration>
            </execution>
          </executions>
        </plugin>

并运行java -jar jetty-runner.jar namename.war你正在使用码头7.4.5.v20110725

正如其他人指出的那样,您正在使用 EL 2.2,这实际上是 Servlet 3.0 功能,因此也许您只需要升级到新版本的jetty runner http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.mortbay.jetty%22%20AND%20a%3A%22jetty-runner%22

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetty 通过 Maven 正确运行,但作为 jar 运行不正确 的相关文章

随机推荐

  • 发送自动短信

    首先 我们使用 net sql server 我有一位客户对能够在预定时间发送短信的系统感兴趣 除了通过电子邮件网关发送短信之外 我从未做过类似的事情 例如 电子邮件受保护 cdn cgi l email protection 但是 我认为
  • Python 导入令人头疼

    我有以下目录结构 Main py A init py B init py C init py 文件Main py包含代码 from A import B from B import C The init py文件为空 当我跑步时Main p
  • 对向量元素进行向量化循环

    我发现很难对以下问题提出快速解决方案 我有一个观察向量 它表示观察某些现象的时间 example lt c 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 现在我想消除特定观察之间的零 假设某种现象会持续下去
  • 数字输入旋转框CSS代码编译为JSS

    我在转换时遇到问题CSS隐藏数字输入旋转框的代码JSS 我的问题是如何正确转换此代码以使其与 JSS 匹配 input webkit outer spin button input webkit inner spin button webk
  • 围绕图中的点绘制圆圈

    我有两个矩阵 timeline 0 0008 0 0012 0 0016 0 0020 0 0024 0 0028 原始数据 79 8400 69 9390 50 0410 55 5082 34 5200 37 4486 31 4237 2
  • Scala 编译器有哪些特殊类型?

    Scala 非常重视如何将看似语言的功能实现为库功能 是否有该语言特别处理的类型列表 是在规范中还是作为实现细节 例如 这包括优化元组的客场匹配 与模式匹配 推导式 try catch 块和其他语言结构相关的特殊约定又如何呢 String
  • CodeBuild 不报告失败的测试

    我正在使用 CodeBuild 构建我的 NPM 项目 我的构建规范中有一个特定的报告组 并且我正在使用 Jest 和npm test命令 当所有测试通过后 将成功报告给 CodeBuild 报告组 但是 如果其中一项测试失败 我会收到错误
  • 为什么 Google Analytics 不跟踪任何事件?

    我已经实现了几乎标准的示例
  • Azure DevOps - 自定义任务 - 具有 Azure 身份验证的 PowerShell

    到目前为止 我使用 Azure PowerShell 任务在 Azure 上下文中执行 PowerShell 脚本 https learn microsoft com en us azure devops pipelines tasks d
  • 大浮点和的精度

    我正在尝试对正递减浮点数的排序数组求和 我发现对它们求和的最佳方法是开始从最低到最高将数字相加 我编写此代码是为了提供一个示例 但是 从最高数字开始的总和更精确 为什么 当然 1 k 2之和应该是f 1 644934066848226 in
  • 在 Java 循环中重新声明变量

    在Java中 我们不能将一个变量与另一个同名变量声明在同一作用域中 int someInteger 3 int someInteger 13 语法错误 无法编译 但是 如果我们将其放入循环中 for int i 0 i lt 10 i in
  • Google 云端硬盘哑剧类型列表? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 As per https developers google com drive manage uplo
  • 如何避免右侧滚动条与顶部导航栏(引导程序)重叠?

    我有一个网站 导航栏固定在顶部 导航栏位于左侧 当网站需要滚动时 右侧的滚动条与顶部导航栏重叠 我希望导航栏从顶部导航栏下方开始 我摆弄了一个问题的例子 https jsfiddle net jsmnsLm7 https jsfiddle
  • 不受信任的 URL 字符串的安全 Process.Start 实现

    我的目标是在用户默认浏览器中安全地打开网页 该网页的 URL 被视为 不受信任 将其视为使用该软件打开的文档中的链接 但该文档可能来自任何地方 并且其中的链接可能是恶意的 我想避免有人将 C Windows malicious code e
  • 来自连接表的 SQL 计数

    我有一个表 lijsten 一个表 werknemerlijsten 和一个表 categorieen 现在我正在使用查询来获取计数 SELECT id naam beschrijving count wl werknemer id as
  • 复杂的查询应该写在Repository层还是Service层?

    我计划将我们的数据访问层迁移到使用存储库模式和工作单元 我确实知道存储库将帮助我轻松地将持久性存储 数据库 集合等 和技术 例如 EF 更改为 MongoDB 所以我注意到存储库实现的一些关键点 例如 Return IEnumerable代
  • 从数组 THREE.js 创建纹理

    我正在研究地形生成器 但我不知道如何处理颜色 我希望能够生成一张占据整个 PlaneGeometry 的图像 我的问题是如何根据我的高度图创建一个覆盖整个 PlaneGeometry 没有环绕 的单个图像 我可以想到一种方法 但我不确定它是
  • 更改 TabBarItem 的 ViewController

    是否可以更改 替换 UITabBarController 中选项卡之一的 ViewController 和 View 我想从特定选项卡以任意顺序在 3 个不同的视图控制器之间切换 这就是导航控制器不可能的原因 它们是使用 setViewCo
  • 为什么 TBitBtn 中包含的字形如此丑陋且过时? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jetty 通过 Maven 正确运行,但作为 jar 运行不正确

    如果我的标题具有误导性 不正确 请提出更具描述性的内容 这是我能想到的最好的内容 我已经使用 spring roo 创建了自己的网络应用程序 但尚未编辑任何代码 我正在使用 Maven 和 jetty 构建并运行 Web 应用程序 当我执行