我有一个数据服务,只在DSS环境中部署时才能完美运行。 在具有dss和esb的环境中部署时的确切数据服务将使具有简单输入参数的操作失败。

关于什么是失败的任何指针将不胜感激。

数据服务有两个操作;

  1. 简单获取没有输入参数的信息,GetLastRequest
  2. 更复杂的get操作,其中传入单个datetime参数,GetNewRequests

在仅DSS环境中部署时,两个操作都可以使用TryIT按预期工作

在DSS / ESB环境中部署时,第一个操作按预期工作。 使用TryIt时,第二个操作失败

操作2:GetNewRequests

DSS配置

<data name="ServiceMagnetRequestMonitor" transports="http">
   <config id="ServiceMagnetStaging">
      <property name="driverClassName">com.mysql.jdbc.Driver</property>
      <property name="url">jdbc:mysql://localhost:3307/servicem_staging_engine</property>
      <property name="username">root</property>
      <property name="password">password</property>
   </config>
   <config id="ServiceMagnetRulesConfig">
      <property name="driverClassName">com.mysql.jdbc.Driver</property>
      <property name="url">jdbc:mysql://localhost:3307/servicemagnetrulesconfig</property>
      <property name="username">root</property>
      <property name="password">password</property>
   </config>
   <query id="GetLastRequest_SQL" useConfig="ServiceMagnetRulesConfig">
      <sql>SELECT datevalue, NOW() as currenttime FROM dateconfigurations WHERE        (configname = 'LastInspectionRequest')</sql>
      <result element="Configurations" rowName="Configuration">
         <element column="datevalue" name="datevalue" xsdType="dateTime"/>
         <element column="currenttime" name="currenttime" xsdType="dateTime"/>
      </result>
   </query>
   <query id="GetNewRequests_SQL" useConfig="ServiceMagnetStaging">
      <sql>SELECT requests.id, requests.name, requests.telephone, requests.email, languages.name AS preflanguage, locations.name AS location, regions.name AS region, provinces.name AS province, requests.timeframe_date, requests.timeframe, requests.created_at&#13;FROM            provinces, regions, locations, requests, languages&#13;WHERE        provinces.id = regions.province_id AND regions.id = locations.region_id AND locations.id = requests.location_id AND requests.language_id = languages.id AND (requests.created_at &gt; :LastRequest_IN)</sql>
      <result element="Requests" rowName="Request">
         <element column="id" name="id" xsdType="string"/>
         <element column="name" name="name" xsdType="string"/>
         <element column="telephone" name="telephone" xsdType="string"/>
         <element column="email" name="email" xsdType="string"/>
         <element column="preflanguage" name="preflanguage" xsdType="string"/>
         <element column="location" name="location" xsdType="string"/>
         <element column="region" name="region" xsdType="string"/>
         <element column="province" name="province" xsdType="string"/>
         <element column="timeframe_date" name="timeframe_date" xsdType="date"/>
         <element column="timeframe" name="timeframe" xsdType="string"/>
         <element column="created_at" name="created_at" xsdType="dateTime"/>
      </result>
      <param name="LastRequest_IN" sqlType="TIMESTAMP"/>
   </query>
   <operation name="GetLastRequest">
      <call-query href="GetLastRequest_SQL"/>
   </operation>
   <operation name="GetNewRequests">
      <call-query href="GetNewRequests_SQL">
         <with-param name="LastRequest_IN" query-param="LastRequest_IN"/>
      </call-query>
   </operation>
</data>

使用TryIT返回错误

<soapenv:Fault xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:axis2ns5336="http://ws.wso2.org/dataservice">
   <soapenv:Code>
      <soapenv:Value>axis2ns5336:INCOMPATIBLE_PARAMETERS_ERROR</soapenv:Value>
   </soapenv:Code>
   <soapenv:Reason>
      <soapenv:Text xml:lang="en-US">DS Fault Message: Error in 'CallQuery.extractParams', cannot find parameter with type:query-param name:LastRequest_IN
DS Code: INCOMPATIBLE_PARAMETERS_ERROR
Source Data Service:-
Name: ServiceMagnetRequestMonitor
Location: \ServiceMagnetRequestMonitor.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: GetNewRequests
Current Params: {}
</soapenv:Text>
   </soapenv:Reason>
   <soapenv:Detail>
      <axis2ns5335:DataServiceFault xmlns:axis2ns5335="http://ws.wso2.org/dataservice">DS Fault Message: Error in 'CallQuery.extractParams', cannot find parameter with type:query-param name:LastRequest_IN
DS Code: INCOMPATIBLE_PARAMETERS_ERROR
Source Data Service:-
Name: ServiceMagnetRequestMonitor
Location: \ServiceMagnetRequestMonitor.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: GetNewRequests
Current Params: {}
</axis2ns5335:DataServiceFault>
   </soapenv:Detail>
</soapenv:Fault>

===============>>#1 票数:2

以下实际上解决了上面提到的问题,但真正的解决方案看起来需要WSO2的修复。 我会为它记录一个JIRA。

请注意,以下说明不会导致您的安装或进一步升级出现任何问题。 这些更改是纯配置并得到完全支持。

问题如报道的那样。 在同一实例中运行DSS和ESB会导致某些带有输入参数的DSS失败。

解决方案 - >一种解决方法简单地说,直到缺陷得到解决,您无法在同一个Carbon实例中运行DSS和ESB。 但是,您可以在两台计算机上运行DSS和ESB,或者如下所述,在同一台计算机上运行两个实例。

呃,哎呀Rob,如果解决方案只是为了进行DSS操作,为什么要经历所有这些努力呢? 为什么不设置dss而忘记esb? 答案是由于想要在一台机器上同时使用dss和esb的功能。 如果您只需要基本的dss功能,那么您可以停止阅读。 但如果你需要在同一台机器上同时使用两种功能,请继续。

在一台计算机上运行ESB和DSS

  1. 独立安装DSS和ESB。
  2. 确保两者都没有运行
  3. 必须以端口偏移量1启动ESB。可以在/repository/conf/carbon.xml文件中设置端口偏移量,其中是ESB二进制分发文件夹。 将偏移值设置为1
  4. 启动两个实例
  5. ESB现在需要代理我们遇到问题的DSS服务。 使用以下结构在esb到dss中创建Passthrough代理https://docs.wso2.com/display/ESB470/Pass+Through+Proxy+Template
  6. 现在使用esb中的TRYIT。 成功!

我希望你觉得这有帮助。

===============>>#2 票数:0

我以前遇到过同样的问题,但我找到了解决方法:用$ CARBON_HOME / repository / conf / axis2_nhttp.xml替换文件$ CARBON_HOME / repository / conf / axis2.xml

这将替换HTTP(s)传输的NHTTP实现的Passthrough,这与独立DSS中使用的相同。

请注意,这将对代理产生负面的性能影响,因此您可能更愿意坚持使用两个碳实例。

  ask by Rob Church translate from so

未解决问题?本站智能推荐:

1回复

WSO2 ESB数据服务

创建数据服务时,在开发SQL时会看到“启用批处理请求”和“启用框承载”选项。 显然,这些用于处理批处理记录。 您能否让我知道调用这两个选项一次处理多少条记录(100、200或默认设置)。 如果要更改默认设置,如何进行。 问候,Abhishek
1回复

具有数据服务托管功能的ESB 4.8.1无法使用Boxcarring

我在安装了数据服务托管功能4.2.4的WSO2 ESB 4.8.1服务器中运行以下代码。 我在网络上进行了一些研究,“ begin_boxcar”请求的正常响应应返回会话cookie,但事实并非如此。 我还尝试将相同的请求发送到独立的DSS 3.2.2服务器。 我确实返回了一个会话cook
1回复

WSO2 ESB集群数据库和数据服务

我可以按照专门的文档设置一个wso2 ESB集群,其中包含一个经理和两个工作人员。 我不确定两点: 每个工作节点都需要它自己的REGISTRY_LOCAL数据库吗? 两名工作人员使用相同的数据库可以正常工作,但是我不确定这是这样做的方法,并且文档尚不清楚。 将数据服务添加为功
2回复

WSO2-通过custuom UI连接到WS02数据服务/ ESB

我需要使用extJS / JSP创建一个自定义用户界面,这将允许我执行以下操作 1)使用类似于Carbon UI的UI创建数据服务并进行部署。 2)使用类似于carbon UI的UI创建esb服务并进行部署。 我找不到可以与其他用户界面集成并提供此功能的API。 阿什什
1回复

WSO2 ESB和WSO2数据服务服务器未在同一服务器上同时作为Windows服务运行

我已在Windows服务所在的同一服务器上安装了WSO2 DSS 3.5.0和WSO2 ESB 4.9.0 ,并在carbon.xml文件中将ESB端口offset = 1 。 当分别启动两个服务时,它们都运行良好,但是当我尝试同时运行这两个服务时,则DSS或ESB都运行了,而另一个服务无
2回复

ESB 4.0.3中的WSO2数据服务(DS)返回错误的错误消息

我在苹果公司工作,我们正在使用带有数据服务功能的WSO2 ESB进行原型设计。 我正在将WSO2 ESB 4.0.3与DSS功能一起使用。 我已经部署了数据服务,并从ESB中的代理服务调用了数据服务。 我正在使用MAC OS X 10.7.4,并且Java版本的详细信息如下。 Jav
1回复

ESB 4.5.1中的WSO2数据服务服务器-是否支持TERADATA功能动态结果集?

如果您可以让我知道如何使用数据服务插件4.0.2在WSO2 ESB 4.5.1中实现TERADATA存储过程的“动态结果集”功能,我将非常感激。 teradat中的存储过程如下所示: 请帮忙。 谢谢阿比吉特
1回复

数据服务服务器3.1.0的SQL查询

我正在使用wso2 DSS 3.1.0并将数据作为数组插入sql中,这是Sql查询 工作正常, 但是我如何为数据服务服务器编写相同的查询。 有人指导我。
1回复

Wso2数据服务错误:NoSuchMethodError

在Carbon Management Console中创建Wso2数据服务时,出现以下错误: 数据服务xml:
1回复

在wso2esb中使用JMS时出现错误

我正在使用wso2esb4.7.0和ActiveMQ5.8.0 http://docs.wso2.org/display/ESB470/ESB+as+a+JMS+Producer和http://docs.wso2.org/display/ESB470/ESB+ as + a + JMS + Co