我正在创建我的第一个项目Java EE7,但我遇到了麻烦。感谢任何帮助。
当应用程序启动时,Tomcat日志显示以下消息:
"validateJarFile (C:\...\build\web\WEB-INF\lib\javaee-api-7.0.jar)-jar not loaded. See Servlet 2.3 Spec, section 9.7.2. Offending class: javax/servlet/Servlet .class"
Advertência: /index.xhtml @18,66 value="#{indexMB.user}": Target Unreachable, identifier 'indexMB' resolved to null
javax.el.PropertyNotFoundException: /index.xhtml @18,66 value="#{indexMB.user}": Target Unreachable, identifier 'indexMB' resolved to null
@Named("indexMB")
@RequestScoped
public class IndexMB {
private String password;
private String user;
public String loginTest(){
return (this.user.equals("admin") ? "adminPage" : "inOutPage");
}
// getters and setters
}
<html ...>
<f:loadBundle basename="i18n" var="bundle" />
<h:head>
<title>#{bundle['index_title']}</title>
</h:head>
<h:body>
#{bundle['index_appname']}
<br />
<h:form id="frmIndex">
<p:panelGrid columns="2">
<p:outputLabel for="user" value="#{bundle['lblUser']}" />
<p:inputText id="user" value="#{indexMB.user}" />
<p:outputLabel for="password" value="#{bundle['lblPassword']}" />
<p:password id="password" value="#{indexMB.password}" />
</p:panelGrid>
<p:commandButton action="#{indexMB.loginTest}" value="#{bundle['btn_login']}" />
</h:form>
</h:body>
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<application>
<locale-config>
<default-locale>pt_BR</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
</locale-config>
</application>
Tomcat作为一个准JSP/servlet容器,不支持CDI。您到底是如何安装CDI的?您真的在/WEB-INF/lib
中删除jakartaee-api.jar
或javaee-api.jar
只是为了编译代码吗?哦,请不要,这不是正确的方式。JEE API JAR只包含API类,而不包含具体的实现。把整个罐子处理掉。它可能会导致许多其他的可移植性问题,比如下面的答案中描述的问题:如何在我的Eclipse项目中导入javax.servlet/jakarta.servlet API?您实际上应该安装具体的实现和特定的API。
您有两种选择:
>
放下Tomcat,寻找真正的Jakarta EE容器。在使用Tomcat时,只需转到Tomee。它非常简单,下载TomEE web profile zip文件,提取它并将其集成到Eclipse中,就像您为Tomcat所做的那样。不要忘记从webapp中删除Jakarta EE JAR文件,并将Project属性中的目标运行时属性从Tomcat改为TomEE,以便正确地解决Jakarta EE依赖关系。另请参见Java EE到底是什么?
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version><!-- e.g. 9.0.0 --></version>
<scope>provided</scope>
</dependency>
在Tomcat上安装一个真正的CDI实现。下面的说明假设Tomcat 10+。Weld是可用的CDI实现之一。在焊接安装指南中,您可以找到如何在Tomcat中集成它的说明。为了完整性和将来的参考起见,以下是步骤:
>
删除WebApp的/WEB-INF/lib
中的weld-servlet-shaded.jar
。如果您使用的是Maven,请使用以下坐标:
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet-shaded</artifactId>
<version>4.0.0.Final</version>
</dependency>
在webapp中创建/meta-inf/context.xml
文件,其内容如下:
<Context>
<Resource name="BeanManager"
auth="Container"
type="jakarta.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory"/>
</Context>
本文向大家介绍如何在Ubuntu 16.04上安装和使用Docker,包括了如何在Ubuntu 16.04上安装和使用Docker的使用技巧和注意事项,需要的朋友参考一下 Docker是一个开源项目,可以自动在软件容器内部署应用程序。该容器允许开发人员打包所有项目资源,例如库,依赖项,资产等。Docker用Go编程语言编写,由Dotcloud开发。它基本上是一个容器引擎,使用诸如命名空间和控制组之
我正在使用谷歌可乐笔记本进行一个项目,该项目要求我在地图上绘制全球定位系统坐标。我想为此使用底图。我试图通过使用 将其导入Colab笔记本,结果显示以下错误: 我需要安装basemap模块才能使用它。我试过,并尝试在Colab上运行它,但没有成功。
我正在寻找安装Tomcat。所以,我解压缩了文件,将CATALINA_HOME设置为我在命令行上看到的路径名(在我的机器上),我的setenv.bat如下所示: 我也试过了 只是 然而,当我调用启动时。bat,我一直收到这样的错误:“JRE_HOME环境变量定义不正确……”。 那里的路径名是我的Windows/系统环境变量的PATH变量上的一个。JRE和JDK已经在这台机器上运行了几个月——它们安
本文向大家介绍如何在centos 7上安装和使用docker和容器,包括了如何在centos 7上安装和使用docker和容器的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将学习如何安装Docker。Dockers是一个非常好的工具,可以在自己的容器上运行应用程序。它像虚拟机一样工作,具有更高的可移植性和资源友好性,并且更加依赖于主机OS。有两种在CentOS 7上安装Docker的方法
问题内容: 我需要能够在Python 2和3之间来回切换。如何使用Homebrew做到这一点,因为我不想弄乱路径并遇到麻烦。现在,我通过Homebrew安装了2.7。 问题答案: 我会用pyenv您可以安装它: 要在您的Bash shell中启用pyenv,您需要运行: 要在启动时自动为Bash执行此操作,请将该行添加到您的中。1个 用法: 安装并激活pyenv后,您可以安装不同版本的python
问题内容: 错误信息: 配置: Ubuntu 14.10(GNU / Linux 3.16.0-23-通用x86_64) gcc(Ubuntu 4.9.1-16ubuntu6)4.9.1 红宝石2.1.2p95(2014-05-08)[x86_64-linux-gnu] 问题答案: 使用RVM在Ubuntu 14.04上升级到Rails 4.2.4之后,我需要这样做: 要么 完整的堆栈跟踪:htt