前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)

纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)

作者头像
菩提树下的杨过
发布于 2018-09-20 03:13:39
发布于 2018-09-20 03:13:39
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

前言:

JSF 2.X因为种种原因(我个人觉得主要是因为推出太晚),再加上EJB2之前的设计过于复杂,引起很多开发人员对官方解决方案的反感,即使EJB3后来做了大量改进,国内也很少有人对EJB3感兴趣,目前国内主流开发架构大多采用SSH,很少有JSF 2.x + EJB 3.x的应用,但从我个人感觉来看,特别是对于从.NET转型到JAVA的web程序员而言,JSF中的很多概念其实跟.NET很接近,国外已经有越来越多的项目在采用JSF + EJB3做为技术选型,下面将详细介绍JSF的开发环境搭建.

一、创建一个Dynamic Web Project

eclipse中新建一个Dynamic Web Project,参考下图

 输入项目名称(本文中为jsf-web),Target runtime这里我们选择None,Configuration这里选择最小配置Minimal Configuration,参考下图:

现在越来越多的java项目采用maven来管理了,为了方便后面转成maven项目,这里对源代码目录参考maven的约定,做下调整,参考下图:

注:对maven目录结构约定不清楚的朋友,建议先看这里

接下来,指定web站点内容目录(即:用来存放"页面\样式\脚本"的目录),这里输入webapp

然后点击Finish,完成项目创建

二、将项目转换成maven项目

刚才创建的项目,默认并不是maven项目,可参考下图转换成maven项目

项目右击 -> Configure -> Convert to Maven Project

转换过程中,会提示指定Group Id/Version这些maven关键信息,可参考下图自行调整:

三、配置pom.xml中的依赖项

JSF只是官方的一个规范,并不是具体的产品,针对这个规范,各厂商都有自己的实现(即: 官方定义了一组interface,但是未给出具体的接口实现,然后各大厂商提供了各家的实现),比如: Apache的myFacesoracle/sun公司的Mojarra,以及Jboss的richfaces,这三种实现从编写代码的角度看,并无太大差别,但部署在不同的web server上,配置需要做相关的调整,个人建议:

如果要部署在weblogic上,建议采用oracle的mojarra

如果要部署在jboss上,建议采用jboss的richfaces

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4     <groupId>yjmyzz</groupId>
 5     <artifactId>jsf-web</artifactId>
 6     <version>1.0</version>
 7     <packaging>war</packaging>
 8 
 9 
10     <dependencies>
11 
12         <!-- 如果打算部署在jboss上,建议下面这个 -->
13 <!--         <dependency>
14             <groupId>org.jboss.spec.javax.faces</groupId>
15             <artifactId>jboss-jsf-api_2.1_spec</artifactId>
16             <version>2.1.19.1.Final-redhat-1</version>
17             <scope>compile</scope>
18         </dependency> -->
19 
20         <!-- 如果打算部署在weblogic上,建议用下面这二个 -->
21         <dependency>
22             <groupId>com.sun.faces</groupId>
23             <artifactId>jsf-api</artifactId>
24             <version>2.2.0</version>
25             <scope>compile</scope>
26         </dependency>
27         <dependency>
28             <groupId>com.sun.faces</groupId>
29             <artifactId>jsf-impl</artifactId>
30             <version>2.2.0</version>
31             <scope>compile</scope>
32         </dependency>
33 
34     </dependencies>
35 
36     <build>
37         <plugins>
38             <plugin>
39                 <artifactId>maven-compiler-plugin</artifactId>
40                 <version>3.1</version>
41                 <configuration>
42                     <source>1.7</source>
43                     <target>1.7</target>
44                 </configuration>
45             </plugin>
46             <plugin>
47                 <artifactId>maven-war-plugin</artifactId>
48                 <version>2.3</version>
49                 <configuration>
50                     <warSourceDirectory>webapp</warSourceDirectory>
51                     <failOnMissingWebXml>false</failOnMissingWebXml>
52                 </configuration>
53             </plugin>
54         </plugins>
55     </build>
56 </project>

pom.xml配置好以后,project中的Maven Dependencies中将看到相应的jar包已经被引入了,如下图:

四、 编写HelloWorld测试代码

4.1 新建一个Bean

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 package yjmyzz.controller;
 2 
 3 import javax.faces.bean.ManagedBean;
 4 
 5 @ManagedBean(name="Home")
 6 public class HomeController {
 7     
 8     public String sayHello(){
 9         return "hello JSF !";
10     }
11 
12 }

4.2 新建一个xhtml页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 2 <html xmlns="http://www.w3.org/1999/xhtml"
 3       xmlns:h="http://java.sun.com/jsf/html"
 4       xmlns:f="http://java.sun.com/jsf/core"
 5       xmlns:ui="http://java.sun.com/jsf/facelets"> 
 6 
 7 <h:head>
 8     <title>jsf-web</title>
 9 </h:head> 
10 <body> 
11     <h1>
12         #{Home.sayHello()}
13     </h1>
14 </body> 
15 </html>

五、部署测试

直接在project上右击-> Run on Server(前提:eclipse中已经配置好了weblogic 或 jboss 服务器,不熟悉eclipse中配置weblogic的朋友,可以先看这里)

weblogic上部署成功的运行截图:

jboss上部署成功的运行截图:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-03-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jersey快速入门案例
Eclipse Jersey 是一个 REST 框架,提供了 JAX-RS (JSR-370) 的实现。
青山师
2023/05/05
6480
使用Maven搭建Struts2框架的开发环境【maven】
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven的主要目标是希望开发人员能在最短的时间内理解开发的完整状态。为了达到这个目标,Maven在下面几个方面做出了努力:简化构建过程、统一构建体系、提供高质量的项目信息、提供开发的最佳实践指南、实现透明的向新特性的迁移、简化构建过程。使用Maven不须要知道一些潜在的或底层的机制,Maven屏蔽了非常多细节。
晴天娃娃只会笑不会哭
2022/02/07
6220
JAVA CDI 学习(1) - @Inject基本用法
CDI(Contexts and Dependency Injection 上下文依赖注入),是JAVA官方提供的依赖注入实现,可用于Dynamic Web Module中,先给3篇老外的文章,写得很不错
菩提树下的杨过
2018/09/20
2.9K0
JAVA CDI 学习(1) - @Inject基本用法
spring-自动加载配置文件\使用属性文件注入
在上一篇jsf环境搭建的基础上 , 加入spring框架 , 先看下目录结构 src/main/resources 这个source folder 放置web项目所需的主要配置,打包时,会自动打包到W
菩提树下的杨过
2018/01/24
1.3K0
spring-自动加载配置文件\使用属性文件注入
需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
一,Remote EJB 服务接口定义: 1 package yjmyzz.ejb.server.helloworld; 2 3 public interface HelloWorldService { 4 5 public String sayHello(String name); 6 7 } 实现: 1 package yjmyzz.ejb.server.helloworld; 2 3 import javax.annotation.security.RolesAllowe
菩提树下的杨过
2018/01/24
6750
第一章:Maven环境下如何配置QueryDSL环境
QueryDSL是一个通用的查询框架,框架的核心原则是创建安全类型的查询,开始QueryDSL仅支持Hibernate(HQL),在不断开源人士加入QueryDSL团队后,陆续发布了针对JPA,JDO,JDBC,Lucene,Hibernate Search,MangoDB,Collections 和RDF(Relational Data Format) Bean等。 本章目标 我们本系列的章节主要使用QueryDSL与SpringDataJPA在SpringBoot开发环境下进行整合使用,目前Spr
恒宇少年
2018/06/27
1.7K3
第3章—高级装配—配置profile bean
我们正常开发的过程中经常遇到的问题是,开发环境是一套环境,qa测试是一套环境,线上部署又是一套环境。这样从开发到测试再到部署,会对程序中的配置修改多次,尤其是从qa到上线这个环节,让qa的也不敢保证改了哪个配置之后能不能在线上运行。
Dream城堡
2018/09/10
4330
第3章—高级装配—配置profile bean
Spring 4 MVC example with Maven - [Source Code Download]
In this tutorial, we show you a Spring 4 MVC example, using Maven build tool.
Hongten
2018/09/13
4000
Spring 4 MVC example with Maven - [Source Code Download]
Spring boot with Email
本文节选自《Netkiller Java 手札》 地址: http://www.netkiller.cn/java/ 9.12. Spring boot with Email 9.12.1. Maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 例 9.2. Spring boot wit
netkiller old
2018/03/05
1.4K0
猿实战02——Spring+mybatis+maven+多模块框架搭建姿势
猿实战是一个原创系列文章,通过实战的方式,采用前后端分离的技术结合SpringMVC Spring Mybatis,手把手教你撸一个完整的电商系统,跟着教程走下来,变身猿人找到工作不是问题。想要一起实战吗?,关注公主号猿人工厂,获取基础代码,手把手带你开发属于自己的电商系统。 从今天开始,我们将进入猿实战的阶段,实现一个前后端分离的电商系统,没有开发框架怎么行?今天是第一个系列,猿人君将带你搭建后端开发框架。
山旮旯的胖子
2020/08/21
8200
猿实战02——Spring+mybatis+maven+多模块框架搭建姿势
Java集成thymeleaf视图层模板引擎构建web项目实例讲解(附项目源码)
我们提供一个Java使用Thymeleaf的简单示例。Thymeleaf是一个模板引擎可以处理XML,XHTML、HTML5。Thymeleaf利用最少的IO操作来获得更快的速度,使用thymeleaf模板引擎加快了前后端开发工作的并行运作。Thymeleaf还提供了国际化。Thymeleaf提供了最基础的两个编程API:ServletContextTemplateResolver 和TemplateEngine。Servletcontexttemplateresolver负责解析模板、Templateengine使用templateengine process()方法处理模板数据。模板引擎表达式可以从properties文件和WebContext获取属性值从而展示到页面。需要注意的是:属性文件、模板文件必须同名且位于同一目录(编译后)。
青山师
2023/05/04
9160
Java集成thymeleaf视图层模板引擎构建web项目实例讲解(附项目源码)
springweb前后端不分离环境搭建
src/main/java src/main/resources src/main/webapp
东营浪人
2021/03/18
4740
weblogic 10.x 上开发restful服务
之前已经学习过 利用JAX-RS快速开发RESTful 服务,当时是jboss环境,如果原封不动的迁移到weblogic 10.x 版本,会杯具的发现应用启动失败,需要做些小调整: 项目结构如下: 需
菩提树下的杨过
2018/01/24
6940
weblogic 10.x 上开发restful服务
架构:第三章:单一(伪分布式)架构之SSM整合
单一(伪分布式)架构之使用Maven建立各个工程之间的依赖、继承、聚合关系 SSM jar包依赖统一管理 工程:parent pom.xml
Java廖志伟
2022/09/28
3690
架构:第三章:单一(伪分布式)架构之SSM整合
maven实战笔记-3
    <project xmlns="http://maven.apache.org/POM/4.0.0"
py3study
2020/01/14
5560
Phalcon VS Spring 用法对照手册
Phalcon VS Spring 摘要 Phalcon VS Spring 用法对照表 ---- 目录 1. Install 1.1. Phalcon 1.2. Spring 2. Project initialization 2.1. Phalcon 2.2. Spring 3. Controller 3.4.1. Phalcon 3.4.2. Spring 3.3.1. Phalcon 3.3.2. Spring 3.2.1. Phalcon 3.2.2. Spring 3.1.1. Phalcon
netkiller old
2018/03/05
1.1K0
Maven私服搭建(Nexus Repository Manager 3)
下载地址:https://help.sonatype.com/repomanager3/download
布禾
2020/10/29
3.5K0
Maven私服搭建(Nexus Repository Manager 3)
基于SSM框架与Maven的CRUD案例
将会打包成 jar用作 jar包使用。即常见的本地工程 - Java Project。
时间静止不是简史
2020/07/24
7030
基于SSM框架与Maven的CRUD案例
spring 3.2.x + struts2 + mybatis 3.x + logback 整合配置
与前面的一篇mybatis 3.2.7 与 spring mvc 3.x、logback整合 相比,只是web层的MVC前端框架,从spring mvc转换成struts 2.x系列,变化并不大 一、
菩提树下的杨过
2018/01/19
1.6K0
Spring boot with MySQL 实例参考
节选择《Netkiller Java 手札》· Spring 框架 9.7. Spring boot with MySQL 9.7.1. Maven pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mave
netkiller old
2018/03/05
8980
推荐阅读
相关推荐
Jersey快速入门案例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验