//0.0.0.0:
61616"/>
(fts-server-config.xml)
tcp:
//127.0.0.1:
61616
5
1
如何修改Platform发布Webservice服务的命名空间
摘要:
如何修改Platform发布Webservice服务的命名空间()为自己指定的名字。
问题描述:
Platform发布Webservice服务,在浏览器上查看wsdl,客户想修改其中的命名空间,如下图红色框的内容,想更换成自己的命名空间。
适用环境:
PlatformV6及以上版本
处理经验:
可以修改user-config.xml中的配置,将DefultNameSpace这行的注释放开,修改为自己指定的值。
--
应用被拦截,调用报错无法访问
摘要:
应用被拦截,调用报错无法访问
场景描述:
test.html 放在 Tomcat 的 webapps/ROOT 目录下,或者其他非default应用下
该静态 HTML 页面中有一个超链接 //127.0.0.1:
8080/default/" target="_blank">EOStest
在资源管理器中直接双击该文件,在浏览器打开后(file:
/// 协议),点击该超链接可以正常访问。
但如果我通过 http:
//127.0.0.1:
8080/test.html 访问该页面(http:
// 协议),点击该超链接时,直接报错了,错误信息为:
调用异常,请查看日志!
而使用window.open没有问题。
EOStest,
functionopen_win()
{
window.open("http:
//127.0.0.1:
8080/default/skins/default/index.jsp")
}
情况分析:
获取前后http头,referer为不同应用之间的请求,那么可能被default给拦截了。
解决办法:
去除拦截器:
把apps_config\default\config\eos\handler-web.xml中的以下配置注释掉,看看是否还会不会有问题:
摘要:
EOS工程部署到JBOSS后报错。
分析日后初步确定为"\jboss-6.1.0.Final\common\lib\slf4j-api.jar"与"\jboss-6.1.0.Final\server\default\deploy\default.ear\default.war\WEB-INF\lib\slf4j-api-1.5.6.jar"冲突导致
该问题已经解决。
方案如下:
修改jboss\server\default\deployers\jbossweb.deployer\META-INF\war-deployers-jboss-beans.xml 添加org.slf4j,以过滤该包
代码如下:
1.
-- Allow for war local class loaders:
in testing -->
2.
3. -1
4. javax.servlet,mons.logging,org.slf4j
5.
然后重启JBOSS服务器。
原因分析:
jboss加载jar包顺序问题。
摘要:
在最近修改SSO应用的时候,涉及到需要在jar包中读取工程配置文件的问题。
在jar包中,读取配置文件,需要单独处理。
项目中的一些配置文件,如dbconfig.propertieslog4j.xml不想打包进jar。
因为可能会修改其中的一些配置信息,打包进jar,就变得比较笨拙,不方便修改文件。
可以用如下方式,实现在jar包中读取外部配置文件。
方法一:
关键代码。
读取properties文件方法:
InputStream ins = getClass().getResourceAsStream("/resource/dbconfig.properties");
但是log4j.xml又需要单独处理:
PropertyConfigurator.configure(System.getProperty("user.dir") + "/resource/log4j.xml");
方法二:
配置文件out.properties和jiar包在同一个目录下面:
FileInputStream inputStream1 = new FileInputStream("out.properties");
配置文件in.properties在jar包内部:
InputStream inputStream2 = a.class.getResourceAsStream("/in.properties");
org.apache.axis2.AxisFault:
WSDoAllReceiver:
摘要:
使用EOS7.2自动生成的客户端代码,在调用带有安全头部消息的webservice接口的时候,会经常出现org.apache.axis2.AxisFault:
WSDoAllReceiver:
IncomingmessagedoesnotcontainrequiredSecurityheader的异常,可以照下文处理
使用EOS7.2自动生成的客户端代码,在调用带有安全头部消息的webservice接口的时候,会经常出现org.apache.axis2.AxisFault:
WSDoAllReceiver:
IncomingmessagedoesnotcontainrequiredSecurityheader的异常,表示传入的消息不包含所需的安全报头,经过分析发现是该方法在第一次被调用后,已经生成了一些安全校验数据,ListenerManager.defaultConfigurationContext不为空,无法对新的请求进行安全数据的封装,导致请求失败,应该清空ListenerManager.defaultConfigurationContext应用环境,重新生成对应的安全校验数据。
可以照如下方式进行处理。
在使用客户端代码的方法中,加入ListenerManager.defaultConfigurationContext=null;
用于清空运行环境,以对新的请求,作出新的安全设置。
示例代码片段:
@Bizlet
publicMapsellOrderPriceUpdate(SellOrderImplsellOrderImpl,SellOrderDetailImpl[]sellOrderDetailImpls)throwsException{
ListenerManager.defaultConfigurationContext=null; //重置axis2部分运行参数环境,用于新的请求
ZCOP_SERVICEStub.ZifSoChangein=newZCOP_SERVICEStub.ZifSoChange(); //输入
ZifSoChangeResponseresponse=newZCOP_SERVICEStub.ZifSoChangeResponse();//输出
EOS在业务程序中获取逻辑构件执行的SQL语句
文章 > huangxu@ > 文章详情
EOS在业务程序中获取逻辑构件执行的SQL语句
huangxu@ 发表于3个月前 来自话题 #应用开发平台(EOSPlatform)# ·
90 浏览
摘要:
更改log4j的日志配置,使用类继承方式,方法重写,在程序中获取逻辑流执行SQL。
配置文件:
应用配置目录/log4j-sys.xml(可根据实际情况使用更改具体配置文件);
更改log4j的日志配置,使用类继承方式,方法重写,在程序中获取逻辑流执行SQL。
配置文件:
应用配置目录 /log4j-sys.xml (可根据实际情况使用更改具体配置文件);
配置文件说明:
config/log4j-deploy.xml 部署日志 记录系统启动、停止、构件包部署、集群通知等信息的日志。
config/log4j-trace.xml 跟踪日志 Server引擎的调试日志,用于系统维护人员定位系统运行问题使用。
config/log4j-sys.xml 系统日志 大粒度的引擎运行的入口、出口的日志,用于调用栈分析,可以进行性能分析使用
config/log4j-engine.xml 引擎日志 细粒度的引擎运行日志,可以打印上下文数据,用于定位业务问题。
记录时机:
页面流(P)执行、逻辑流(B)执行、服务(S)执行、Web服务(W)调用、定时任务(D)执行、JSP(J)执行、SQL(Q)执行(超过时限者记录)、运算逻辑(X)执行(超过时限者记录);
记录格式:
有固定格式
[记录时间][请求编号][P|B|S|W|D|J|Q|X(类型)][Begin|End|Exception|Run][全名][执行时长][父全名][IP地址][登录用户ID][登录用户名][当前内存总量][当前空闲内存量][自定义信息]。
配置文件log4j-sys.xml ,找到log.sys.sql开关,
off更改为all
找到RollingFileAppender
新建新类LimsLogOut继承RollingFileAppender,重写doAppend方法,方法参数LoggingEvent内有属性可区分SQL。
截图实例如下:
由于该类记录SQL日志为超过时限者记录,时限默认设置为1000毫秒,很
多sql执行时间可能不需要1000毫秒,需进行更改,
找到sys-config.xml配置文件,将属性LogSqlWhenTimeout设置为1。
部署配置文件,在新建类LIMSLogOut中可以处理SQL日志。
多个EOS连接同一个数据库出现定时器表锁定的问题解决方案
文章 > bigdabao > 文章详情
多个EOS连接同一个数据库出现定时器表锁定的问题解决方案
bigdabao 发表于4个月前 来自话题 #应用开发平台(EOSPlatform)# ·
260 浏览
摘要:
多个EOS连接同一个数据库出现定时器表锁定的问题解决方案
问题描述:
如果多个EOS连接同一个数据库,在server启动的时候,会出现EOS_QRTZ_LOCKS锁表的情况,导致Server启动不成功
解决方案:
多个环境连通过库,容易出现定时器锁表的问题,因为定时器默认情况下是启动,可尝试如下操作:
--IsSchedulerStart[optional,defaultto"true"],whethertostarttimerwhenapplicationstartsup-->true--DataSouceName[optional,defaultto"default"],datasoucename(mustbethesameasDataSource'sGroupname)-->
--configValuekey="DataSouceName">default将颜色标记的true改为false(连同一个库的每个环境都需要改)
用户session失效,ajax调用不能跳转的解决方案
文章 > liucl > 文章详情
用户session失效,ajax调用不能跳转的解决方案(PrimetonEOS)
liucl 发表于9个月前 来自话题 #应用开发平台(EOSPlatform)# ·
341 浏览
摘要:
在某客户项目支持过程中发现session失效后,ajax还能继续调用,原因是在拦截器虽然能拦截到ajax调用,也做了跳转到index.jsp的操作,但由于是ajax调用,在index.jsp中并不能完成跳转,页面没有任何变化,所以不能正常跳转到登录页面,在abframe或其它项目可能也存在这种问题。
场景
一个基于Ajax技术的Web应用,采用的是多页面方式,每个页面内部使用Ajax实现复杂业务逻辑之间的无刷新切换,使用了Struts来实现MVC。
问题
对于Ajax请求,只有在通过用户验证无误之后才能对请求作出响应。
如果用户长时间不做操作导致Session过时之后才发出请求,则此时应该跳转到出错页面,提示用户重新登录。
对于非Ajax请求,可以自定义异常并针对此异常设置相应的出错页面。
在用户信息验证失败的时候直接抛出此异常即可,web容器会自动捕捉到此异常并且显示出错页面;但是,对于Ajax请求,则不会如期待的那样自动跳转到出错页面。
若不错特殊处理,Ajax请求的回调函数会得到意想不到的数据而导致程序出错。
分析
对于一个Ajax的应用,每一次客户端和服务器的数据交互,可以看成是在一个由客户端的XMLHttpRequest和服务器端的Servlet(这里假设用Servlet响应Ajax请求)组成的闭合管道。
解决
在Filter中,判断当前用户是否处理登录状态,如果session已经失效则调用response.getWriter.write("session_time_out");
修改eos-ajax.js内容,判断返回的ajax.responseText的内容是否为"session_time_out",如果相等,则认为session已经失效并调用top.location="auth/login.jsp";
注意
eos-ajax.js是平台js库文件,所以像"auth/login.jsp"这样的项目路径最后采用配置的方式。
总结
对于Ajax的请求,其数据流是封闭的,服务器发送给在客户端的数据都被XMLHttpRequest对象所获得。
本文通过从Filter中发出javascript代码让其在客户端得到执行,从而可以在session过时验证用户信息失败之后,让客户端自动跳转到登录页面,与非Ajax请求时的客户体验相一致。
对于Ajax请求,此方法进一步推广,可以直接在服务器端发出javascript让其在客户端得到执行。
FTP大数据解决方案
某客户系统EOSPlatform流程数据丢失问题定位以及故障排除过程
文章 > yang-yong > 文章详情
某客户系统EOSPlatform流程数据丢失问题定位以及故障排除过程
yang-yong 发表于9个月前 来自话题 #应用开发平台(EOSPlatform)# ·
88 浏览
摘要:
从解决问题的角度,我们不建议用户直接将Connection的autoCommit设置为false,理由就是这样破坏了数据库连接;如果用户需要将连接设置为false,则需要在用完连接后,将连接的状态设置回去;或者直接在外层使用事务。
一.客户环境
产品版本:
EOSPlatform6.5
服务器:
Was7,4个节点的集群
数据库:
Oracle11g
JDK版本:
1.6
浏览器:
IE7
二.问题描述
客户环境上主要表现为通过逻辑流调用了BPS的服务,同时在逻辑流里面存在业务数据的操作,调用完逻辑流之后,流程数据和业务数据都丢失了,且整个过程没有抛出异常,问题只是偶然重现,而且只能在正式环境上重现,测试环境始终没有重现问题。
三.问题分析定位过程
1.熟悉客户系统,了解问题重现方式,发现流程数据丢失需要客户操作很多次才会出现一次,重现概率比较低;
2.熟悉客户代码,发现客户的逻辑流里面存在嵌套事务,且业务操作和流程操作在同一个事务里面,对流程的操作在一个子事务里面,逻辑流里面事务设置都