Spring boot 无法访问目标,标识符[tinyCalculator]解析为空

Spring boot 无法访问目标,标识符[tinyCalculator]解析为空,spring-boot,cdi,jsf-2.2,Spring Boot,Cdi,Jsf 2.2,我看到在我的情况下有很多类似的问题和答案,但问题是没有一个对我有用! 我试图学习JSF和Spring boot,并使用了一些教程帮助他们管理这个简单的小代码,但它不起作用。 问题是Eclipse知道我的托管Bean及其在jsf页面中的属性,我的页面呈现得非常完美,但是当我输入数字并单击任何命令按钮时,就会出现错误! 我想它可能找不到目标类,所以我试着用 <build> <outputDirectory>src\main\webapp\WEB-INF\classes

我看到在我的情况下有很多类似的问题和答案,但问题是没有一个对我有用! 我试图学习JSF和Spring boot,并使用了一些教程帮助他们管理这个简单的小代码,但它不起作用。 问题是Eclipse知道我的托管Bean及其在jsf页面中的属性,我的页面呈现得非常完美,但是当我输入数字并单击任何命令按钮时,就会出现错误! 我想它可能找不到目标类,所以我试着用

<build>
    <outputDirectory>src\main\webapp\WEB-INF\classes</outputDirectory>

}我要写一个答案,这个答案不能解决你的问题,但是你的pom中有很多错误,它不适合评论

<outputDirectory>src\main\webapp\WEB-INF\classes</outputDirectory>
src\main\webapp\WEB-INF\classes
使用src文件夹作为输出文件夹是错误的。。。永远不要这样做。有一个目标文件夹,如果有些东西由于奇怪的原因没有在那里结束,请将它们添加到正确的目标位置,而不是src文件夹。检查这些类是否存在很简单

    <!-- https://mvnrepository.com/artifact/javax/javaee-api -->
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>8.0.1</version>
        <!-- <scope>provided</scope> -->
    </dependency>

爪哇
现在已存在于您的应用程序中。然后这两个之前的api已经存在,很可能在其他版本中(JSF在2.3版上,注入相同),这很可能会导致问题

    <!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-impl -->
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.20</version>
    </dependency>

com.sun.faces
jsf impl
2.2.20
有一个JSF2.3版本,您有一个2.3API。因此,您已经开始了“旧”版本的旅程

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <!-- <scope>provided</scope> -->
    </dependency>   

    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.3</version>
       <!--  <scope>provided</scope> -->
    </dependency>   

    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>2.0</version>
        <!-- <scope>provided</scope> -->
    </dependency>

javax.servlet
javax.servlet-api
4.0.1
javax.servlet
jstl
1.2
javax.servlet.jsp
javax.servlet.jsp-api
2.3.3
javax.enterprise
CDIAPI
2
这里提到的库也已经存在于javaeeapi中,所以复制也是如此。即使没有JavaEEAPI,也只需要cdi api。其他的都应该提供

    <!-- https://mvnrepository.com/artifact/com.sun.el/el-ri -->
    <dependency>
        <groupId>com.sun.el</groupId>
        <artifactId>el-ri</artifactId>
        <version>1.0</version>
    </dependency>


<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina -->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-catalina</artifactId>
    <version>9.0.35</version>
</dependency>

com.sun.el
埃尔里
1
org.apache.tomcat
卡塔琳娜雄猫
9.0.35
这一个重复了以前的几个API。。。因为它们有不同的maven groupId,所以它们将包含artifactId。实现还可以,但是对于一些api,您现在有三个JAR


所以请从清理这些开始。。。使用“joinfaces”为您完成所有这些是一件好事

99.99%确定其中一个会为您工作。很可能你没有完全阅读它们,或者理解错误。但你肯定做错了的是,你没有展示和说明你做了奥格问题中提到的所有事情。我将投票结束这个问题,如果投票最多的是重复的问题。我希望你能阻止它关闭,改善问题。。。很多谢谢你@Kukeltje。显然,我对JSF非常陌生,我也不太了解依赖关系。我寻找答案已经很久了,甚至读了你们上面提到的论文,补充了一些我认为可能对我有帮助的东西。看来我把事情弄得更糟了,应该从头再来一次。感谢您提供有关依赖关系的好提示。我会检查并修改它们,然后再试一次。没问题,但大部分都与jsf无关。请尝试joinfaces并确保您最初在开发模式下运行应用程序OK谢谢。我可以删除这个问题吗?似乎除了我之外,它对任何人都没有帮助!:)别管它了。这些事情可能会帮助其他人。。。如果“社区”想要删除它,它会的。那么干杯。:)@库克杰。当我找到解决方案并成功后,我会在这里告诉大家。
    <!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-impl -->
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.20</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <!-- <scope>provided</scope> -->
    </dependency>   

    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.3</version>
       <!--  <scope>provided</scope> -->
    </dependency>   

    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>2.0</version>
        <!-- <scope>provided</scope> -->
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.el/el-ri -->
    <dependency>
        <groupId>com.sun.el</groupId>
        <artifactId>el-ri</artifactId>
        <version>1.0</version>
    </dependency>


<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina -->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-catalina</artifactId>
    <version>9.0.35</version>
</dependency>