设为首页 收藏本站
云服务器等爆品抢先购,低至4.2元/月
查看: 1104|回复: 0

[经验分享] java学习:eclipse + Weblogic 12c + svn 集成开发环境搭建

[复制链接]

尚未签到

发表于 2017-2-18 11:12:20 | 显示全部楼层 |阅读模式
  网上有很多文章都说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"
DSC0000.jpg

  选择 对应的weblogic版本
DSC0001.jpg

  指定weblogic的domain目录
DSC0002.jpg

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

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

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

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

  把Subclipse Plugin、Subversion Book 这二个都勾上,然后一路Next就OK了,安装过程中,可能会弹一个警告框,不用理会,全部选择继续安装
  五、测试svn
  5.1 先创建一个Dynamic Web Project
DSC0007.jpg

  注意: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
DSC0008.jpg

  六、测试 WebLogic
  6.1、项目运行时的自动部署
  在刚创建的myWeb里创建二个jsp文件:home.jsp和about.jsp
DSC0009.jpg

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

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

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

  把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掉,否则后面再手动部署一个同名应用时会失败)
DSC00013.jpg

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

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

  此时,在浏览器里输入 http://localhost:7001/myWeb应该就能看到home.jsp的内容了
  6.3.2、域名绑定
  每次通过http://localhost:7001/myWeb来访问实在太烦人,如果能象访问其它网站那样,直接用类似 http://yjmyzz.com/ 来访问就fashion多了。iis里,通过设置网站的主机头,可以轻松搞定,weblogic里也有类似的功能,那就是"虚拟主机"
  6.3.2.1、 创建一个虚拟主机
  找到虚拟主机面板
DSC00016.jpg

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

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

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

  6.3.2.2、 将myWeb应用挂到虚拟主机上
  在部署面板,双击myWeb修改目标属性,将虚拟主机Virtualhost-myWeb前的勾选中
DSC00020.jpg

  6.3.2.3、 修改7001端口为80
  在服务器面板,双击"AdminServer"把监听端口从7001,改成80
DSC00021.jpg

  6.3.2.4、 修改根路径myWeb为/
  以部署面板,双击myWeb,修改上下文根,从"myWeb"改成"/"
DSC00022.jpg

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

  刚才我们输入的域名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/ 应该就大功告成了(如果浏览器设置了代理,建议先去掉代理,或添加例外)
DSC00024.jpg

  6.3.3、创建weblogic web service
  创建一个WebLogic Web Service Project 命名为myWebService
DSC00025.jpg

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




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“接口契约”及“实现”
DSC00027.jpg

DSC00028.jpg

  接口定义



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测试
DSC00029.jpg

DSC00030.jpg

  6.3.3、eclipse 环境中调用weblogic web service
  6.3.3.1、创建客户端调jar包
  File->New 创建一个Weblogic Web Service Client
DSC00031.png

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

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

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

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

  6.3.3.2、利用客户端jar包,调用web service
  随便创建一个java project,命名为wsCallDemo,在project属性时,把刚才生成的jar包添加进来
DSC00036.png

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

  写几行代码测试一下:



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());//输出结果、

}
}

DSC00038.png

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343810-1-1.html 上篇帖子: 不使用插件在eclipse中集成weblogic(转) 下篇帖子: 我遇到的weblogic安装部署和连接池中的错误 和解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表