当前位置: 首页 > 知识库问答 >
问题:

WebSphere Application Server for Liberty未找到上下文根

牟稳
2023-03-14

我是使用Java EE在Eclipse中构建动态web项目的新手。起初一切顺利,我可以在我的WebSphere Application Server for Liberty(16.0.0.4版)上本地运行我的web项目,并从

localhost:9080/MainApplication

并将其推送到IBMBlueMix上的远程服务器,一切都仍然有效。

在开发过程中,我发现了JavaServer Faces的功能。所以我在eclipse中进入我的项目,并使用Mojara 2.2 JSF实现库添加了JSF方面。一旦我将JSF方面添加到我的项目中,每次我试图在本地运行我的web应用程序时,我都会遇到一个“Context Root Not Found”错误页面。甚至试图直接访问我的网页(localhost:9080/main application/index . html)也会导致同样的错误。然而,推送到我的远程服务器仍然工作,我的web项目正常运行JSF,所以这使我相信我的本地机器上的WebSphere应用服务器配置有问题。

通过在Eclipse中从我的应用程序中删除JSF方面来恢复可以解决这个问题,而重新添加这个方面会重新引入这个问题。根据这个链接,添加一个JSF方面只会将您选择的JSF实现库导入到项目中,添加一个“Faces配置文件”并用faces servlet配置更新您的web.xml。所以我不明白为什么添加JSF方面会导致服务器找不到上下文根。这是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
    <display-name>MainApplication</display-name>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
    <context-param>
        <description>
        State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        <param-value>resources.application</param-value>
    </context-param>
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
</web-app>

server.xml:

<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>webProfile-7.0</feature>
        <feature>localConnector-1.0</feature>
        <feature>adminCenter-1.0</feature>
    </featureManager>

    <basicRegistry id="basic">
      <user name="admin" password="adminpwd"/>
   </basicRegistry>

   <administrator-role>
      <user>admin</user>
   </administrator-role>

    <remoteFileAccess>
        <writeDir>${server.config.dir}</writeDir>
    </remoteFileAccess>

    <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
    <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>

    <!-- Automatically expand WAR files and EAR files -->
    <applicationManager autoExpand="true"/>

    <applicationMonitor updateTrigger="mbean"/>
    <keyStore id="defaultKeyStore" password="adminpwd"/>

    <webApplication id="MainApplication" location="MainApplication.war" name="MainApplication" contextRoot="MainApplication" type=""/>
</server>

我尝试过启动一个新项目,从头开始添加JSF,而不是稍后添加,但我遇到了同样的问题。我已尝试将contextRoot=“MainApplication”添加到我的服务器。xml,这也不起作用。如果我右键单击我的项目-

在过去的三天里,我一直在寻找解决办法,但一无所获,用尽了我所有的想法。感谢任何帮助。

共有1个答案

葛骏
2023-03-14

webProfile-7.0特性引入了jsf-2.2特性,因此问题可能是由两个jsf实现引起的。为了确保这不是问题,您可以列出webprofile独立提供的每个功能,但删除jsf,因此:jsp-2.3、ejbLite-3.2、managedBeans-1.0、beanValidation-1.1、servlet-3.1、ssl-1.0、jndi-1.0、jsonp-1.0、appSecurity-2.0、jdbc-4.1、jaxrs-2.0、jaxrsClient-2.0、el-3.0、json-1.0、jpaContainer-2.1、cdi-1.2、distributedMap-1.0、websocket-1.1、jpa-2.1

再加上其他两个功能:adminCenter-1.0、localConnector-1.0

 类似资料:
  • 我似乎不能在本地工作,即使同样的WAR在远程服务器上也能工作。当我在本地访问我的应用程序时,我得到了“没有找到上下文根”的错误。自由档案版本是8.5.5.5。 以下是相关文件: 服务器.xml 留言.log ibm-web-bnd.xml ibm-web-ext.xml

  • 我正在使用Java和JLWGL开发一个有趣的世界编辑器。到目前为止,一切正常。现在我试着创建一个窗口,在那里我可以添加一个地形或一个新模型来使用。问题是,当我尝试从主线程创建地形时,它被创建并显示,但当我尝试通过按钮eventlistener调用它时,我得到了一个错误:在当前线程中找不到OpenGL上下文。我基本上知道我为什么会出错。我用来获取输入并单击按钮的框架没有opengl上下文。 我现在的

  • 问题内容: 我有以下代码: 我正在尝试在命令行“ $ ant build”上使用ant对其进行编译,但我不断收到以下错误: 有什么建议吗?谢谢! 问题答案: 简短答案:添加此

  • 问题内容: 我试图找出为什么我的Web应用程序抛出一个 当我从中复制配置的一个姐妹悄悄地运行时。 我有: 通过右键单击并选择“新的持久性”从netbeans创建一个新的持久性,我不在乎我提供的实际值,但只需要在正确的目录中创建persistence.xml文件即可。 如下编辑我的context.xml,以匹配工作姐妹项目中的那个 编辑了我的web.xml以包含资源DataSource,如下所示 如

  • 我想用。tmx文件作为TileMap 这是我的主要课程: 在intellij中编译程序时,我遇到了以下问题: 2017年6月20日星期二23:37:23 IRDT错误:在当前线程中未找到OpenGL上下文。JAVAlang.RuntimeException:在当前线程中找不到OpenGL上下文。在org。lwjgl。opengl。背景。getCapabilities(GLContext.java:

  • 我试图从分解的war目录进行部署,但得到了相同的上下文错误(如果我从eclipse进行部署,或者如果我尝试从manager页面进行部署,则会发生这种情况,错误输出如下): 我的运行配置-war:exploded tomcat:exploded-将分解的war文件的内容复制到\apache7\work\Catalina\localhost 是否缺少apache\tomcat配置设置<非常感谢您的任何