集成WSO2 Governance Registry 4.6.0和Oracle Service Bus 12c

时间:2015-07-01 10:10:54

标签: wso2 osb uddi wso2greg juddi

的关注 https://docs.wso2.com/display/Governance460/Oracle+Service+Bus 我正在尝试将Oracle Service Bus 12c(OSB)与WSO2 Governance Registry 4.6.0(G-Reg)集成。

我已经在OSB(greg-uddi)上添加了UDDI注册表,然后我尝试向UDDI发布代理服务。我已经选择了代理服务并检查了UDDI - "自动发布到注册表"复选框。

在我在OSB上激活会话后,在wso2 log(wso2carbon.log)上写了以下异常:

TID: [0] [Greg] [2015-07-01 11:44:36,260]  INFO 
{org.apache.cxf.phase.PhaseInterceptorChain} -  Application 
{urn:uddi-org:v3_service}UDDIInquiryService#{urn:uddi-
org:v3_service}get_serviceDetail has thrown exception, unwinding 
now: org.apache.juddi.v3.error.InvalidKeyPassedException: The 
business service was not found for the given key:  
uddi:bea.com:servicebus:xxxx:yyyyyyy:sample 
{org.apache.cxf.phase.PhaseInterceptorChain}

TID: [0] [Greg] [2015-07-01 11:44:36,442]  INFO 
{org.wso2.carbon.registry.juddi.util.UDDIGovernanceUtil} -  
Service sample added Successfully.! 
{org.wso2.carbon.registry.juddi.util.UDDIGovernanceUtil}

在G-Reg管理控制台上看,代理/ wsdl列表上没有任何内容,只有在服务列表中才有"示例"目前,但没有任何有用的信息(也没有有效的网址)。

出了什么问题? 我必须做些什么才能在G-REG上发布wsdl?

1 个答案:

答案 0 :(得分:1)

jUDDI抱怨密钥生成器tModel不存在传入的密钥。它是UDDI规范的一部分。如果您的服务密钥是' uddi:bea.com:servicebus:xxxx:yyyyyyy:sample'

然后你需要使用以下密钥的tModel密钥生成器才能发布。它们也需要按此顺序创建。

  • UDDI:bea.com
  • uddi:bea.com:servicebus
  • UDDI:bea.com:servicebus:XXXX
  • uddi:bea.com:servicebus:xxxx:yyyyyyy

此链接有如何引导使用jUDDI的web gui http://juddi.apache.org/docs/3.2/juddi-client-guide/html_single/#_create_a_tmodek_key_generator_partition

您也可以通过编程方式创建它们。这是一个例子 https://svn.apache.org/repos/asf/juddi/trunk/juddi-examples/create-partition/src/main/java/org/apache/juddi/example/partition/SimpleCreateTmodelPartition.java

以下是您正在寻找的代码:

 TModel keygen = UDDIClerk.createKeyGenator("www.mycoolcompany.com", "My Company's Keymodel generator", "en");
                    clerk.register(keygen);
                    System.out.println("Creation of Partition Success!");