一、安装
xxx-ml:多语言版
web-profile:web版,无附加功能?
先创建域
H:\os\osConfig\.asadminpass-----管理员密码文件
http://127.0.0.1:4848/common/index.jsf 管理员界面
http://microsof-0e9e66:8080/maWei.sciMan/test.do 访问应用
https://microsof-0e9e66:8181/maWei.sciMan/test.do 加密访问
二、建立数据源
1、{gl_installHome}\glassfish\domains\domain1\lib下放toplink的2个包
否则: Could not load Toplink Essentials. Assuming this is an upgrade from V2. Switching Persistence Unit [maWei.sciMan] to use [org.eclipse.persistence.jpa.PersistenceProvider] as JPA provider. If you intend to use Toplink Essentials, please ensure that it is visible to your application."
{gl_installHome}\glassfish\domains\domain1\lib\ext下放oracle的驱动
2、jdbc connections pools:-----------------如果没放驱动,会ping不通、提示找不到connectionPoolDataSource类
resource type:javax.sql.connectionPoolDataSource
database driver vendor:oracle
user\password\
url:jdbc:oracle:thin:@127.0.0.1:1521:XE
3、jdbc resources
jndiName: jdbc/xxxx ----------------------要和persistence.xml中的 jta-dataSource属性一致
poolName\status
三、部署
1、opM中导出 war,放到{gl_installHome}\glassfish\domains\domain1\autodeploy下
2、提示jsf冲突:javax.faces.FacesException: 表达式错误:未找到指定的对象 org.operamasks.faces.component.html.HtmlHead----------at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1881)
a、将operamasks-api.jar放到{gl_installHome}\glassfish\domains\domain1\lib\mw下,修改{gl_installHome}\glassfish\domains\domain1\config\domain.xml文件,在java-config标签内增加 <java-config 。。。 system-classpath="" classpath-suffix="${com.sun.aas.instanceRoot}/lib/mw/operamasks-api.jar;">---------将与gl自带jsf冲突的opM相关包提前加载
b、新建sun-web.xml(与web.xml同目录,有用)
jar放到应用的lib文件夹下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd">
<sun-web-app >
<class-loader delegate="false"/>
<property name="useMyFaces" value="true"/>
</sun-web-app>
3、提示can not create a provider...nullPoint....--------------打印相关entityManager、serviceBean均为null,说明注入失败------------改用jndi方式查找
在IxxxService中,将@javax.ejb.remote改为local,可提高注入速度
在页面托管bean中,
ImoduleService moduleService=null;
try{
//InitialContext ic = new InitialContext();
//moduleService = (ImoduleService)ic.lookup("java:global/maWei.sciMan/moduleService"); //本地jndi,java:global/应用名/service名
moduleService = (ImoduleService) (new InitialContext()).lookup("java:global/maWei.sciMan/moduleService");
} catch(Exception e){e.printStackTrace();}
----------------------------------------在opM中,jndi名,可查看启动日志:如 java:ejb30/moduleService
4、使用.xhtml访问,会提示java.lang.IllegalStateException: PWC3990: getWriter() has already been called for this response
按照web.xml内
<url-pattern>*.do</url-pattern>
指定的文件名访问
poolName