我正在使用以下源代码结构的Java EE Web应用程序:
src/main/java <-- multiple packages containing java classes
src/test/java <-- multiple packages containing JUnit tests
src/main/resources <-- includes properties files for textual messages
src/main/webapp/resources <-- includes CSS, images and all Javascript files
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/tags
src/main/webapp/WEB-INF/views
Run Code Online (Sandbox Code Playgroud)
我感兴趣的是WEB-INF
- 它包含web.xml
用于设置servlet的XML文件,Spring bean连接上下文以及JSP标记和视图.
我试图理解什么约束/定义这个结构.例如JSP文件总是必须在WEB-INF
其他地方或者它们可能在其他地方吗?还有其他可能进入的地方WEB-INF
吗?维基百科的WAR文件条目提到classes
了Java类和lib
JAR文件 - 除了其他源文件位置之外,还不确定我是否完全掌握了这些文件.
我有这个奇怪的问题使我的项目Maven为基础.我在Eclipse中创建了一个新的Maven项目并启用了Dynamic Web方面.但是在运行时现在它会抛出ClassNotFoundException
因为Maven依赖项没有复制到WEB-INF/lib
目录.我甚至尝试在POM中添加copy-dependencies部分,但它没有帮助.
有人在这里似乎已经解决了这个正确的方式,但我猜他忘了提解决方案::(
互联网上的大多数地方都说它代表WEB INF ormation.
我很怀疑它.该文件夹包含可执行文件.信息不适合它.
在这些问题之后:
我写了所有来解决JSF2框架的"愚蠢"问题,我无法直接链接到存储在/WEB-INF
子文件夹中的页面.之后我做了一些关于Google和Stackoverflow的研究我会知道一件事:我如何构建一个JSF2 Web项目?
特别是,我在哪里放置XHTML页面?
该WEB-INF
文件夹CLASSPATH
是Java Web应用程序的吗?
我有一个名为BookShopWeb的动态Web项目,我在eclipse中创建,具有以下目录结构
/BookShopWeb/|
|--src
|---WebContent
|
|---META-INF
|----WEB-INF---web.xml
|
|--css--styles.css
|--jsp---index.jsp
Run Code Online (Sandbox Code Playgroud)
在web.xml中,我将起始页面设置为
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/index.jsp</welcome-file>
Run Code Online (Sandbox Code Playgroud)
在index.jsp中,我将css包括在内
<head>
<link rel="stylesheet" type="text/css" href="../css/styles.css" />
</head>
Run Code Online (Sandbox Code Playgroud)
加载时索引页面不会显示css信息.我使用firebug检查了元素,它显示错误报告
Apache Tomcat/6.0.29 - Error report..
The requested resource (/css/styles.css) is not available.
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?我怎么能纠正这个?谢谢你
您能否让我了解javaEE应用程序中APP-INF和WEB-INF文件夹之间的主要区别.
谢谢
我想将我的JSF 2.0 xhtml文件放在WEB-INF\jsf下.我如何访问它们呢?我知道WEB-INF内部的任何内容都没有暴露在外面,所以我需要一个控制器来将我重定向到相应的JSP,对吧?(这也是模型2模式iirc).
我可以使用web.xml/faces-config.xml中的参数来实现这一点吗?我认为FacesServlet是我的webapp的控制器所以它应该用于此目的?
另一个理解模型2模式的问题.是否每个操作都必须首先进入servlet,然后处理下一个可能的步骤?因此,<a href="anotherPage.html" />
在这种模式中禁止使用简单,因为它不会进入控制servlet?
在我的战争中,Weblogic类加载器似乎更喜欢系统库而不是库WEB-INF/lib/
.
我尝试过设置以下内容WEB-INF/weblogic.xml
,但没有成功:
<weblogic-web-app>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
Run Code Online (Sandbox Code Playgroud)
这只是给了我很多验证错误:
exception is java.lang.VerifyError: (class: org/apache/xerces/parsers/AbstractSAXParser, method: parse signature: (Lorg/xml/sax/InputSource;)V) Incompatible object argument for function call
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
Truncated. see log file for complete stacktrace
Run Code Online (Sandbox Code Playgroud)
(我试图避免将WAR打包到EAR中.)
到目前为止,我在书或教程中看到的每个项目示例都将XHTML(Facelets)页面与WEB-INF目录放在同一级别上.我还读过,为了让服务器上的页面无法直接访问,你需要将它们隐藏在WEB-INF目录下,这意味着需要某种视图解析器.我的问题是,我该怎么做?