在WebLogic 12c上运行RichFaces

我最初以为我可以在几个月前写这篇文章。 但是我最终被不一样的事情所淹没。 其中之一是,它无法像我在4.0版本中那样简单地启动RichFaces展示柜。 有了所有的JMS magic和不同的提供者检查,这已经成为简单构建和部署它的挑战。

无论如何,我愿意尝试一下,然后开始。 如果您想开始使用任何JBoss技术,最好先检查一下JBoss Developer Framework 。 这是各种示例和快速入门的不错集合,可帮助您开始使用Java EE及其技术。 RichFaces-Validation示例就是其中之一,该示例演示了如何一起使用JSF 2.0,RichFaces 4.2,CDI 1.0,JPA 2.0和Bean Validation 1.0。

这个例子

该示例由一个成员实体组成,该成员实体具有一些JSR-303(Bean验证)约束。 通常,从数据库开始,在持久性层,最后是与客户端紧密交互的视图层中的多个地方,对这些位置进行检查。 即使此快速指南不包含持久层,它也从Enity开始,它很好地反映了现实生活中的情况。 该应用程序包含使用JSF和RichFaces编写的视图层,并包括用于新成员注册的AJAX向导。 新注册的成员需要在实际“注册”之前提供一些信息。 这包括通过电子邮件发送姓名和电话号码。

入门

我将不再重复出色而详细的快速入门已经向您展示的内容。 因此,如果您想在JBoss AS7上运行它,请去那里。 我们从一个空白的Maven Web项目开始。 最好,最简单的方法是启动NetBeans 7.2并创建一个。 让我们将其命名为“ richwls-web”。 打开您的pom.xml并开始在那里进行一些更改。 首先在此处删除认可的内容。 我们不需要它。 接下来是添加一点dependencyManagement:

<dependencyManagement><dependencies><dependency><groupId>org.jboss.bom</groupId><artifactId>jboss-javaee-6.0-with-tools</artifactId><version>1.0.0.Final</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.richfaces</groupId><artifactId>richfaces-bom</artifactId><version>4.2.0.Final</version><scope>import</scope><type>pom</type></dependency></dependencies></dependencyManagement>

这会将Java EE 6和RichFaces的物料清单(BOM)添加到您的项目中。 BOM会指定工件“堆栈”(或集合)的版本。 您可以从RedHat家伙那里找到任何东西,并且认为拥有它是“最佳实践”。 最后,这可以简化您的工作,因为它可以为您管理版本和依赖项。
关于冗长的真实依赖项列表:

<!-- Import the CDI API --><dependency><groupId>javax.enterprise</groupId><artifactId>cdi-api</artifactId><scope>provided</scope></dependency><!-- Import the JPA API --><dependency><groupId>javax.persistence</groupId><artifactId>persistence-api</artifactId><version>1.0.2</version><scope>provided</scope></dependency><!-- JSR-303 (Bean Validation) Implementation --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.3.0.Final</version><scope>provided</scope><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></exclusion></exclusions></dependency><!-- Import the JSF API --><dependency><groupId>javax.faces</groupId><artifactId>jsf-api</artifactId><version>2.1</version><scope>provided</scope></dependency><!-- Import RichFaces runtime dependencies - these will be includedas libraries in the WAR --><dependency><groupId>org.richfaces.ui</groupId><artifactId>richfaces-components-ui</artifactId></dependency><dependency><groupId>org.richfaces.core</groupId><artifactId>richfaces-core-impl</artifactId></dependency>

除了RichFaces依赖项之外,其他所有项都由运行时提供。 在这种情况下,它将是GlassFish 3.1.2.2。 如果您尚未在其他地方(settings.xml)定义它,则还应该将JBoss存储库添加到构建部分:

<repository><id>jboss-public-repository-group</id><name>JBoss Public Maven Repository Group</name><url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url></repository>

复制source-zip的richfaces-validation目录的内容,或从github中检出它 。 请多加注意,不要弄乱我们创建的pom.xml;)构建它并部署这些东西。

问题

首先,您会得到一个很好的焊接信息:

WELD-000054 Producers cannot produce non-serializable instances for injection into non-transient fields of passivating beans [...] Producer Method [Logger] with qualifiers

显然我们这里有一个问题,需要将Logger字段声明为瞬态。

@Inject
private transient Logger logger;

不知道为什么它可以在AS7上工作,但是有一天我可能会发现它是:)下一次迭代:更改,构建,部署。

java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;

看起来还不错。 在http:// localhost:7001 / wls-cat /上启动WLS CAT,然后尝试查找它。

似乎Oracle正在服务器内部使用Google Magic。 好的。 我们无法将RichFaces部署为对WebLogic的独立战争,因为我们需要在此处解决一些类加载问题。 推荐的方法是添加一个所谓的过滤类加载器。 您可以通过将weblogic-application.xml添加到您的耳朵来实现。 是的:让我们重新打包所有内容,将战争放在空旷的耳朵中,然后将魔术添加到weblogic-application.xml中:

<prefer-application-packages><package-name>com.google.common.*</package-name></prefer-application-packages>

做完了吗 进行另一次部署,您终于可以看到您的应用程序。 RichFaces基本上是在WebLogic上运行的,但是您必须将其打包到耳朵中,并为com.google.common。*类打开类加载器。 使用PrimeFaces可以轻松得多,但是…无论如何,有一些原因让我尝试这样做。 一种是,我很喜欢能够在客户端触发Bean验证的想法。 如果看一下示例, <rich:validator event ='blur'/>会为客户端添加针对bean验证约束和标准jsf验证器的客户端验证。 无需弄乱JavaScript或重复逻辑中的任何内容。

祝您编程愉快,别忘了分享!

参考:来自JCG合作伙伴 Markus Eisele的WebLogic 12c上的RichFaces运行在 Java软件企业博客上。


翻译自: https://www.javacodegeeks.com/2012/09/running-richfaces-on-weblogic-12c.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot系列教程一:Eclipse安装spring-tool-suite插件

一.前言 一直使用eclipse&#xff0c;个人习惯选用Eclipsespring-tool-suite进行开发&#xff0c;特别注意Eclipse要选用对应的spring-tool-suite进行安装&#xff0c;这点笔者浪费了好长时间&#xff0c;以下为对应的版本。eclipse-kepler.4.3.1–>springsource-tool-suite…

湖南工程学院计算机网络考试,湖南工程学院 计算机网络期末试卷试题

湖南工程学院 计算机网络期末试卷试题湖南工程学院 计算机网络 期末试题(计算机10级&#xff0c;90%的题目)1 从逻辑功能上看,计算机网络可分为哪两个子网?答&#xff1a;通信子网和资源子网 2 数据链路层的最基本功能答&#xff1a;数据链路层的最基本的功能是向该层用户提供…

C#设计模式(11)——外观模式(Facade Pattern)

一、引言 在软件开发过程中&#xff0c;客户端程序经常会与复杂系统的内部子系统进行耦合&#xff0c;从而导致客户端程序随着子系统的变化而变化&#xff0c;然而为了将复杂系统的内部子系统与客户端之间的依赖解耦&#xff0c;从而就有了外观模式&#xff0c;也称作 ”门面“…

OS X Mountain Lion上的多个Java版本

在Mountain Lion之前&#xff0c;Java被捆绑在OS X中。似乎在升级期间&#xff0c;我在计算机上安装的Java 6版本被删除了。 显然&#xff0c;在升级过程中卸载Java的原因是Java运行时存在的安全问题。通过这种方式&#xff0c;您不得不安装可解决此安全问题的最新版本。 所以我…

Oracle锁机制的总结【转】

最近在研究Oracle锁机制的时候发现网上的资料鱼龙混杂将&#xff0c;很多将问题复杂化&#xff0c;让人感觉没有条理性。经过查询原始理论资料&#xff0c;总结如下&#xff1a; 在数据库理论中&#xff0c;我们知道。我们在执行并发访问数据库表时&#xff0c;如果没有任何一致…

2020暨阳学院园林计算机考研考场,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关键一步——院校选择我把各位同学的院校选择阶段分为以上几个阶段&#xff0c;因为考研这一年中&#xff0c;很多人的目标院校并不是固定不变的&#xff0c;而是随着不同阶段而改变的。学长我在大三下学期这一时间段内也多次更…

List Box 控件

1 //定义变量&#xff0c;并关联控件与变量。IDC_RecvData为控件ID&#xff0c;recvData为控件对应的变量名 2 CListBox recvData; 3 4 DDX_Control(pDX, IDC_RecvData, recvData); 5 6 //向List Box控件IDC_RecvData中添加一行数据 7 CString str&#xff1b; 8 recvData.Ad…

JavaOne 2012:向上,向上和向外:使用Akka扩展软件

在最后的社区主题演讲后&#xff0c;我前往希尔顿金门大桥3/4/5观看了维克多巴生 &#xff08; Viktor Klang &#xff09;的&#xff08; Typesafe &#xff09;“上&#xff0c;下&#xff0c;外&#xff1a;Akka”演讲。 巴生&#xff08;Klang&#xff09;是Akka的技术主管…

华北科技学院计算机期末考试,华北科技学院 专业计算机 考试专用

1不能应用修剪命令“trim”进行修剪的对象是(D、文字) 。2. 命令行(B.不能随意移动)3. 布尔运算中差集的热键为(A.SU)4. 定距等分点用( C.DIST)命令5. 标高是以( B.厘米) 为单位6. 在建筑平面图中用以指明朝向的是( B.指北针)7. A3图纸的尺寸是( c.420x297)8. 既可以绘制直线&a…

redux-plain-english-workflow

https://quickleft.com/blog/redux-plain-english-workflow/转载于:https://www.cnblogs.com/skating/p/6495384.html

Spring测试支持和上下文缓存

Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文&#xff0c;并与JUnit和TestNG等单元测试框架集成。 由于为每个测试加载大型应用程序上下文需要时间&#xff0c;因此Spring智能地为测试套件缓存应用程序上下文–通常&#xff0c;当我们通过a…

perl6正则 4: before / after 代码断言: ?{} / !{}

<?before> <? befor XXX> 某字符在 xxx 之前 <?after > <?after XXX> 某字符之后有XXX 对应的取反分别为: <!before > <!before XXX> XXX之前没有 <!after> <!after xxx> 某字符后面不是 xxx say "foobar" ~~…

mac 下JDK 与 tomcat 的安装与配置

一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK&#xff0c;在终端中输入java 或者 javac 显示说明&#xff0c;表明已经安装过JDK&#xff0c;JDK版本查询终端键入java &#xff0d;version&#xff0c;终端会返回JDK的版本号。 2.如果没有安装JDK&#xff0c;登陆 http://w…

新型发明创造大赛计算机类,2017年发明杯全国高职高专大学生创新创业大赛

以“发明创新实现梦想、创意创业改变生活”主题活动为依托&#xff0c;把课内与课外教育相结合&#xff0c;学校教育、家庭教育与社会教育相结合&#xff0c;培养广大在校大学生的科技创新意识和实践动手能力&#xff0c;激发他们设计创造的乐趣&#xff0c;使广大大学生大胆创…

如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)

转载&#xff1a;http://www.cnblogs.com/codeon/p/6123863.html 上篇文章说到接口安全的设计思路&#xff0c;如果没有看到上篇博客&#xff0c;建议看完再来看这个。 通过园友们的讨论&#xff0c;以及我自己查了些资料&#xff0c;然后对接口安全做一个相对完善的总结&#…

PrimeFaces在GlassFish 3.1.2.2上推动大气

PrimeFaces 3.4在三天前问世。 除了通常令人敬畏的新组件和更新组件之外&#xff0c;它还包括新的PrimeFaces Push框架。 基于Atmosphere&#xff0c;这为您的应用程序提供了简单的推送机制。 这是在最新的GlassFish 3.1.2.2上配置和运行它的方法。 准备工作 像往常一样&#…

部分视图跳转

var album GetDailyDeal(); return PartialView("_DailyDeal", album); 通过NuGet需要添加microsoft.jquery.unobtrusive.ajax 方法一 在BundleConfig.cs 里添加 bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include("~/Scripts/jquery…

计算机二级目录设置,word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置...

word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置 这是第2部分word资料 , 跟之前的第一部份word资料合为一份第二题2、在正文前按序插入节&#xff0c;使用“引用”中的目录功能&#xff0c;生成如下内容&#xff1a;(1) 第1节&a…

JBoss AS 7类加载说明

这是示例章节&#xff0c;摘自Francesco Marchioni编辑的JBoss AS 7 Configuration Deployment and Administration一书&#xff0c;该书正在运行一个名为mastertheboss.com的JBoss门户。 根据Java EE规范的要求&#xff0c;理想情况下&#xff0c;应用程序服务器应为其部署的应…

打印机 共享 问题

1 用户提报无法打印&#xff0c;经查被共享打印机无法联网&#xff0c;先检查网线是否正常&#xff08;换其他电脑是否能行&#xff09;&#xff0c;再检查交换机是否正常&#xff0c;经查交换机需要重启&#xff0c;然后解决问题。 2 被共享机器为32位操作系统&#xff0c;其余…