java学习:eclipse + Weblogic 12c + svn 集成开发环境搭建

简介: 网上有很多文章都说eclipse要安装额外的插件才能支持weblogic,可能以前需要这样,但自从bea的weblogic被oracle收购后,现在已经很简单了 一、先下载 Free Oracle WebLogic Server 12c (12.

网上有很多文章都说eclipse要安装额外的插件才能支持weblogic,可能以前需要这样,但自从bea的weblogic被oracle收购后,现在已经很简单了

一、先下载 Free Oracle WebLogic Server 12c (12.1.1) Zip Distribution and Installers for Developers

http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html

这个安装以后,就已经自带了Eclipse(而且已经集成了weblogic插件),安装完成后,可以通过 “开始菜单->所有程序->Oracle Enterprise Pack for Eclipse->Oracle Enterprise Pack for Eclipse” 启动

二、64位机器上,Eclipse启用失败的问题

出错时,提示信息如下:

Java was started but returned exit code=1

...

网上找了很多文章,都说是修改eclipse.ini配置或重新安装32位JVM,但我试了貌似都无效,最后发现还是得在环境变量里修改:

2.1 添加系统环境变量JAVA_HOME,其值为 c:\bea\jdk160_29\  (此处修改为自己机器上的jdk实际物理目录)

2.2 PATH环境变量最后添加 ;%JAVA_HOME%\bin\

2.3 添加系统环境变量 CLASSPATH,其值为  .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar

检测这些变量是否正确的最简单办法:在命令行cmd窗口里,输入javac -version,要是能出java版本号就说明ok

三、在Eclipse里设置Weblogic Server

找到Servers面板,点击"New Server wizard"

选择 对应的weblogic版本

指定weblogic的domain目录

如果你已经创建了dynamic web project,还可以把指定的项目应用到该weblogic服务器

(当然也可以直接点击Finish)完成,弄完后,就能看到当前服务器的状态(如果没有启用,就会显示Stopped)

可以右键->Start,就可以直接在Eclipse下启用WebLogic了 

四、svn插件的安装
启用Eclipse,在Help菜单下,找到 Install New Software...,在work with 里输入  http://subclipse.tigris.org/update

把Subclipse Plugin、Subversion Book 这二个都勾上,然后一路Next就OK了,安装过程中,可能会弹一个警告框,不用理会,全部选择继续安装

五、测试svn

5.1 先创建一个Dynamic Web Project

注意:Traget runtime以及Configuration 二项都要选择对应的Weblogic(后面还会利用这个项目,测试部署weblogic)

5.2、签入代码(check in)

在Project Explorer 中,选中刚创建的myWeb,然后右键->Team->Share Projet 就能签入代码了(当然要填写一些基本信息,比如svn资源库路径,用户名、密码等)

5.3、签出代码(check out)

创建项目时,也可以选择直接从svn服务器上check out,方法:New->Other

六、测试 WebLogic

6.1、项目运行时的自动部署

在刚创建的myWeb里创建二个jsp文件:home.jsp和about.jsp

启动后,eclipse会自动start weblogic server,同时会自动部署myWeb应用

6.2、网站的默认页设置

刚才的示例,我们必须在地址栏明确指定要访问的页面,即http://localhost:7001/myWeb/home.jsp 才以正确访问,如果把home.jsp去掉,直接用 http://localhost:7001/myWeb来访问,就会出错:

在iis中,可以通过设置站点的默认文档来实现这个需求。在weblogic中,就得通过其它方式来处理,修改web.xml文件:

把web.xml中,webcome-file-list中的第一个welcome-file节点值设置成home.jsp,这样就行了。

6.3、纯手动部署应用(war包)

开发时,我们可以借助eclipse自动实现weblogic部署,但是真正上线时,通常都是通过war包来手动部署的。

6.3.1、 通过eclipse导出war包

在项目myWeb上右击->export->war file,这样就得到了一个war文件:myWeb.war ,它本质上就是一个标准的压缩文件,可以用winrar,7-zip之类的压缩软件打开。

6.3.2、登录weblogic手动部署war包

登录http://localhost:7001/console 控制台(具体路径大家根据weblogic的安装情况,自行调整)

找到"部署"界面,如果是新安装的weblogic,部署列表里应该是空的(另外如果刚才在eclipse环境中,运行过项目myWeb,部署列表中可能会有一个自动部署的myWeb,建议大家先在eclipse环境中的server面板中,把自动部署的myWeb给delete掉,否则后面再手动部署一个同名应用时会失败)

找到刚才导出的myWeb.war包,然后猛击“下一步”,一路向西,直至完成

部署完成后,应用会自动运行

此时,在浏览器里输入 http://localhost:7001/myWeb应该就能看到home.jsp的内容了

6.3.2、域名绑定

每次通过http://localhost:7001/myWeb来访问实在太烦人,如果能象访问其它网站那样,直接用类似 http://yjmyzz.com/ 来访问就fashion多了。iis里,通过设置网站的主机头,可以轻松搞定,weblogic里也有类似的功能,那就是"虚拟主机"

6.3.2.1、 创建一个虚拟主机

找到虚拟主机面板

创建一个新虚拟主机,命名为"VirturlHost-myWeb"

创建完成后,双击"VirtualHos-myWeb"

修改"网络接入点名称",输入要绑定的域名: www.yjmyzz.com

 

6.3.2.2、 将myWeb应用挂到虚拟主机上

在部署面板,双击myWeb修改目标属性,将虚拟主机Virtualhost-myWeb前的勾选中

6.3.2.3、 修改7001端口为80

在服务器面板,双击"AdminServer"把监听端口从7001,改成80

6.3.2.4、 修改根路径myWeb为/ 

以部署面板,双击myWeb,修改上下文根,从"myWeb"改成"/"

弄完之后,应该就能直接用http://localhost/ 来访问myWeb了

刚才我们输入的域名www.yjmyzz.com是随便想的,实际上并不存在,为了验证刚才这一系列修改是否有效,可以先修改本机hosts文件,加入一行

127.0.0.1 www.yjmyzz.com

这样就能本机模拟域名解析(注:可在命令行窗口输入ping www.yjmyzz.com来验证,正常情况下,应该能ping通过,而且返回的ip就是127.0.0.1),直接在地址栏输入 http://www.yjmyzz.com/ 应该就大功告成了(如果浏览器设置了代理,建议先去掉代理,或添加例外)

6.3.3、创建weblogic web service

创建一个WebLogic Web Service Project 命名为myWebService

 

6.3.3.1、创建用于传输的实体类PersonEntity

package model;

import java.util.*;

public class PersonEntity {
	
	private String _name;
	private int _age;
	private Date _birthday;
	private float _salary;
	/**
	 * @return the _name
	 */
	public String getName() {
		return _name;
	}
	/**
	 * @param _name the _name to set
	 */
	public void setName(String _name) {
		this._name = _name;
	}
	/**
	 * @return the _age
	 */
	public int getAge() {
		return _age;
	}
	/**
	 * @param _age the _age to set
	 */
	public void setAge(int _age) {
		this._age = _age;
	}
	/**
	 * @return the _birthday
	 */
	public Date getBirthday() {
		return _birthday;
	}
	/**
	 * @param _birthday the _birthday to set
	 */
	public void setBirthday(Date _birthday) {
		this._birthday = _birthday;
	}
	/**
	 * @return the _salary
	 */
	public float getSalary() {
		return _salary;
	}
	/**
	 * @param _salary the _salary to set
	 */
	public void setSalary(float _salary) {
		this._salary = _salary;
	}

}

  

6.3.3.2、创建web service“接口契约”及“实现”

接口定义

package contract;

import javax.jws.WebMethod;
import javax.jws.WebService;
import model.*;

@WebService(name = "Person", targetNamespace = "http://jmyang.com/")
public interface Person {

	@WebMethod(operationName = "getPersonByName")
	public PersonEntity getPersonByName(String name);
	
	
}

接口实现

package contract;
 
import javax.jws.*;
import model.*;
 
@WebService(portName = "PersonPort", serviceName = "PersonService", targetNamespace = "http://jmyang.com/", endpointInterface = "contract.Person")
public class PersonImpl implements Person {
 
    public PersonEntity getPersonByName(String name) {
         
        PersonEntity p = new PersonEntity();
        p.setName(name);
        if (name.equals("jmyang")){
            p.setAge(30);
            p.setSalary(1000);
        }
        else if(name.equals("zhangsan")){
            p.setAge(20);
            p.setSalary(1500);
        }
        else{
            p.setAge(25);
            p.setSalary(1200);
        }       
         
        return p;
 
    }
}

6.3.3.3、部署 及 WSDL测试

 

6.3.3、eclipse 环境中调用weblogic web service

6.3.3.1、创建客户端调jar包

File->New 创建一个Weblogic Web Service Client

WSDL选择Remote,并输入WSDL的远程地址

指定生成客户端jar的路径(其实用默认的就行了)

指定“运行时从远程获取wsdl”

完成后,eclipse就会生成一个jar包

6.3.3.2、利用客户端jar包,调用web service

随便创建一个java project,命名为wsCallDemo,在project属性时,把刚才生成的jar包添加进来

在eclipse里,双击PersonService.jar包,可以看到里面有很多自动生成的类

写几行代码测试一下:

package test;
import com.jmyang.*;

public class CallWsSample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		PersonService service = new PersonService();
		Person serviceInterface = service.getPort(Person.class);//取得服务接口
		
		PersonEntity jimmy= serviceInterface.getPersonByName("jmyang");//调用服务
		System.out.println(jimmy.getName() + "/" + jimmy.getAge() + "/" + jimmy.getSalary());//输出结果
		
		PersonEntity zhangsan= serviceInterface.getPersonByName("zhangsan");//调用服务
		System.out.println(zhangsan.getName() + "/" + zhangsan.getAge() + "/" + zhangsan.getSalary());//输出结果、
		

	}

}

 

注:以上方法,对于调用.net wcf服务同样适用。需要特别注意的是:对于String类型的比较,在java web service中,一定要用 equals来判断二个字符串(内容)是否相等,如果用==号,永远返回false,但是在常规java project中,==号与equals结果却相同(初次接触java web service,暂时尚未完全参透,看了一些相关的文章,==号是判断二个字符串是否引用相同,而equals是判断二个字符串是否内容相同,在常规java project中测试时,String未被序列化传输,jvm内部二个字符串的引用、内容都是相同的,但在web service中使用时,字符串会被序列化传输,反序列化时,相当于创建了一个全新的字符串实例对象,导致引用不同)

 

 

目录
相关文章
|
10月前
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
450 11
|
安全 Java 数据安全/隐私保护
在Java项目中集成单点登录(SSO)方案
在Java项目中集成单点登录(SSO)方案
1234 2
|
SQL Java 中间件
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
在BeetISQL 2.13.8版本中,客户使用batch insert向yashandb表插入数据并尝试获取自动生成的sequence id时,出现类型转换异常。原因是beetlsql在prepareStatement时未指定返回列,导致yashan JDBC驱动返回rowid(字符串),与Java Bean中的数字类型tid不匹配。此问题影响业务流程,使无法正确获取sequence id。解决方法包括:1) 在batchInsert时不返回自动生成的sequence id;2) 升级至BeetISQL 3,其已修正该问题。
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
Java Android开发
Eclipse Java 构建路径
Eclipse Java 构建路径
218 3
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
301 3
|
NoSQL Java Redis
Spring Boot集成Redis全攻略:高效数据存取,打造性能飞跃的Java微服务应用!
【8月更文挑战第3天】Spring Boot是备受欢迎的微服务框架,以其快速开发与轻量特性著称。结合高性能键值数据库Redis,可显著增强应用性能。集成步骤包括:添加`spring-boot-starter-data-redis`依赖,配置Redis服务器参数,注入`RedisTemplate`或`StringRedisTemplate`进行数据操作。这种集成方案适用于缓存、高并发等场景,有效提升数据处理效率。
1272 2
|
NoSQL Java 关系型数据库
MongoDB保姆级指南(下):无缝集成SpringData框架,一篇最全面的Java接入指南!
前面的两篇文章已经将MongoDB大多数知识进行了阐述,不过其中的所有内容,都基于原生的MongoDB语法在操作。可是,在实际的日常开发过程中,我们并不会直接去接触MongoDB,毕竟MongoDB只能算作是系统内的一个组件,无法仅依靠它来搭建出一整套系统。
1115 1
|
监控 安全 Java
在Java中集成第三方API调用的最佳实践
在Java中集成第三方API调用的最佳实践
|
Java 网络安全 开发工具
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
321 0

推荐镜像

更多