• webservice 接口报404错误问题小结


    1 背景介绍

    生产环境有两台应用服务器(RAC),EBS版本是12.1.3,服务器操作系统版本linux

    节点一:10.192.80.87

    节点二:10.192.80.88

    20180512(周六) 凌晨停应用和数据库服务器,然后更换网络设备(交换机),凌晨四点重启数据库和应用服务器

    2 问题描述:

    1)EBS系统对接的外围系统的webservice接口无法正常访问,以HR凭证接口为例,报错信息如下:

    [18-5-14 20:11:21:408 CST] 000427cd SystemErr     R AxisFault
     faultCode: {http://xml.apache.org/axis/}HTTP
     faultSubcode: 
     faultString: (404)Not Found
     faultActor: 
     faultNode: 
     faultDetail: 
    	{}:return code:  404
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>404 Not Found</TITLE>
    </HEAD><BODY>
    <H1>Not Found</H1>
    The requested URL /webservices/SOAProvider/plsql/cux_hr_inter_pkg/ was not found on this server.<P>
    </BODY></HTML>
    
    	{http://xml.apache.org/axis/}HttpErrorCode:404

    2)直接访问EBS提供的webservice接口URL:http://ebs.cic.inter:8000/webservices/SOAProvider/plsql/cux_hr_inter_pkg/,发现

    奇怪的现象,有时候报错有时候不报错,通过网线连接公司内网报错,通过wifi上网测试不报错

    报错信息:No WebService Provider is registered at this URL 

    正常显示:

    由于应用服务器是双节点的,访问ebs.cic.inter后通过F5(负载均衡) 实现随机访问某个节点,所以将上面的webservice接口URL中的域名改成IP,重试

    发现访问节点一:http://10.192.80.87:8000/webservices/SOAProvider/plsql/cux_hr_inter_pkg/,正常;

    访问节点二:http://10.192.80.88:8000/webservices/SOAProvider/plsql/cux_hr_inter_pkg/,报错;

    3)adadmin用户登录EBS,发现报错信息:

    服务供应商访问权限不可用。您可能无法查看完整的服务信息。有关详情,请查看服务供应商日志

    备注:这个问题一般是webserver没有成功生成WSDL或者生成了但是没有部署成功

    4)重新生成WSDL并部署

    由于是多节点环境,Oracle推荐使用后台脚本生成和部署WS。这是因为在多节点环境,如果通过UI生成一个Service,我们可能不知道到底是哪个节点的服务生成了,

    我们需要每个节点进行检查才知道。因此采用后台针对每一个节点生成和部署WS。

    具体参考文档:“Oracle实践之EBS Integrated SOA Gateway实施指南_modify by renjun.doc”的  “5.3   ISG多节点Web Service生成和部署

    a 生成WS

    $ cd $FND_TOP/bin

    $ soagenerate.sh irepname=CUX_HR_INTER_PKG logfile=/tmp/cux_ws_gen.log

    查看/tmp/cux_ws_gen.log的日志如下:

    ########################

    Please see Service Provider logs for more details
    ServiceGenerator invoked at : Tue May 15 11:32:01 CST 2018

    Using following properties :-

    INST_TOP = /ebsapp/inst/apps/EBS2_ebsapp2
    OAFM oc4j.properties = /ebsapp/inst/apps/EBS2_ebsapp2/ora/10.1.3/j2ee/oafm/config/oc4j.properties
    EXTERNAL_URL = http://ebs.cic.inter:8000
    JTFDBCFILE = /ebsapp/inst/apps/EBS2_ebsapp2/appl/fnd/12.0.0/secure/EBS.dbc
    SOA_SERVER_TEMP_DIRECTORY_LOCATION = /ebsapp/inst/apps/EBS2_ebsapp2/soa/
    SOA_SERVER_URL = http://ebsapp2.cic.inter:8000
    SOA_ENABLE_STANDALONE_LOGGING = true
    SOA_CREATE_DB_CONN_CONTEXT = true


    irepName is : CUX_HR_INTER_PKG
    ClassId = 4412
    Generating service with classId = 4412
    WSDL Location = /ebsapp/inst/apps/EBS2_ebsapp2/soa//PLSQL/4412/CUX_HR_INTER_PKG_soap.wsdl

    Service Generated.
    ServiceGenerator executed successfully.Please clear the middle tier cache for the changes to reflect on the IREP UI correctly
    ServiceGenerator ends at : Tue May 15 11:33:54 CST 2018

    在$INST_TOP/soa/PLSQL/4412/下成功生成相关文件

    $ cd $INST_TOP/soa/PLSQL/4412

    $ ll

    total 52
    -rw-r----- 1 ebsapp ebsapp 1245 May 15 12:49 AppsContextHeader.wsdl
    -rw-r----- 1 ebsapp ebsapp 13138 May 15 12:49 APPS_ISG_PROCESS_HR_INTER_CUX_HR_INTER_PKG-24PROCESS_HR_I.xsd
    -rw-r----- 1 ebsapp ebsapp 3007 May 15 12:49 CUX_HR_INTER_PKG_soap_http.wsdl
    -rw-r----- 1 ebsapp ebsapp 3240 May 15 12:49 CUX_HR_INTER_PKG_soap.wsdl
    -rw-r----- 1 ebsapp ebsapp 614 May 15 12:49 CUX_HR_INTER_PKG.wsdl
    -rw-r----- 1 ebsapp ebsapp 277 May 15 12:49 ISG_PROCESS_HR_INTER_drop.sql
    -rw-r----- 1 ebsapp ebsapp 11486 May 15 12:49 ISG_PROCESS_HR_INTER.sql
    -rw-r----- 1 ebsapp ebsapp 2916 May 15 12:49 PROCESS_HR_INTER.wsdl

    b  部署WS

    $ cd $FND_TOP/bin

    $ soadeploy.sh irepname=CUX_HR_INTER_PKG logfile=/tmp/cuxsoadeploy.log

    查看部署WS的日志 /tmp/cuxsoadeploy.log ,如下:

    ########################

    Please see Service Provider logs for more details
    ServiceDeployer invoked at : Tue May 15 10:35:10 CST 2018

    Using following properties :-

    INST_TOP = /ebsapp/inst/apps/EBS2_ebsapp2
    OAFM oc4j.properties = /ebsapp/inst/apps/EBS2_ebsapp2/ora/10.1.3/j2ee/oafm/config/oc4j.properties
    EXTERNAL_URL = http://ebs.cic.inter:8000
    JTFDBCFILE = /ebsapp/inst/apps/EBS2_ebsapp2/appl/fnd/12.0.0/secure/EBS.dbc
    SOA_SERVER_TEMP_DIRECTORY_LOCATION = /ebsapp/inst/apps/EBS2_ebsapp2/soa/
    SOA_SERVER_URL = http://ebsapp2.cic.inter:8000
    SOA_CREATE_DB_CONN_CONTEXT = true


    irepName is : CUX_HR_INTER_PKG
    Policy = USERNAME_TOKEN
    Deploying Service for IRepName CUX_HR_INTER_PKG
    ClassId = 4412
    Error in Service Deployment.
    SystemError: Error while sending message to server. http://ebsapp2.cic.inter:8000/webservices/SOAProvider/EbizAuth?DeployService=4412&soa_ticket=NL4TxBfZdo-bW-_0WFWF6Q..&authtype=USERNAME_TOKEN&
    oracle.apps.fnd.soa.util.SOAException: SystemError: Error while sending message to server. http://ebsapp2.cic.inter:8000/webservices/SOAProvider/EbizAuth?DeployService=4412&soa_ticket=NL4TxBfZdo-bW-_0WFWF6Q..&authtype=USERNAME_TOKEN&
    at oracle.apps.fnd.soa.provider.util.ServerAccess.sendMessageToServer(ServerAccess.java:92)
    at oracle.apps.fnd.soa.ui.ProviderAccess.deployService(ProviderAccess.java:129)
    at oracle.apps.fnd.soa.provider.ServiceDeployer.deploySOAService(ServiceDeployer.java:84)
    at oracle.apps.fnd.soa.provider.ServiceDeployer.deploySingleService(ServiceDeployer.java:112)
    at oracle.apps.fnd.soa.provider.ServiceDeployer.main(ServiceDeployer.java:488)

    由部署日志可以看出部署失败。

     3 原因分析

    节点一一切正常,节点二SOA访问有问题,webservice接口的ws无法部署。

    1)假设一:可能之前重启应用服务器节点二的时候,重启存在问题,导致SOA服务没有起成功;

          建议解决方法:重启应用服务器

    2)假设二:可能跟缓存有关, oafm和oacore 这部分缓存估计是写在磁盘文件里的,重启不会清理,而是直接读取以前缓存的数据 ,所以需要手工清理掉,再去读取最新的配置,

                       可能是ip地址变动或者网络配置变动导致的,一般不会出现。

          建议处理方法:清理高速缓存,然后重启应用服务器

     4 实际解决方法

    这边是下午先清了高速缓存,然后晚上将节点二服务器重启,能够成功访问节点二:http://10.192.80.88:8000/webservices/SOAProvider/plsql/cux_hr_inter_pkg/,问题解决,但是不确定跟下午清高速缓存是否有关。问题的具体原因后面遇到再继续补充。

  • 相关阅读:
    JS URL传中文参数引发的乱码问题
    git (转载)
    php webservice
    php date之间的相互转换
    在图片上加字符-base64转图片-图片转base64
    转:微软面试一百题
    2014-8-17 note
    some base knowledge
    introduction
    Centos6.6 编译安装nginx
  • 原文地址:https://www.cnblogs.com/hand-lzs/p/9045269.html
Copyright © 2020-2023  润新知