2010-01-29 3 views
0

우리는 V2에서 jUDDI V3까지의 이동을 포함하여 일부 시스템을 업그레이드하고 있습니다. 과거 우리는 자바 코드에서 UDDI 서버에 액세스하기 위해 uddi4j를 사용했지만, uddi4j는 V3로 계속 진행되지 않았습니다. 광범위한 Google 시간을 통해 대체물이 없다고 생각하게되었습니다. 이 경우인가요? 대안이 있다면 추천 할 수 있습니까?V2에서 업그레이드 할 때 jUDDI V3에 연결하기 위해 사용할 수있는 Java API는 무엇입니까?

답변

1

내가 아는 한 jUDDIv3는 자체 UDDI 클라이언트를 제공합니다. http://www.redhat.com/docs/en-US/JBoss_SOA_Platform/5.0.0-Beta1/html/jUDDI_User_Guide/chap-Using_jUDDI-Client.html

내가 별도의 다운로드 lib 디렉토리를 찾지 못했습니다하지만이 juddi 포털-번들에 포함되어

참조하십시오.

+0

실제로 바로 그 페이지를 통해 찾아 봤는데,하지만 난 내 인생에 대한 프로그래밍 방식으로 얻을 장소 서비스하기 위해 UDDI 데이터베이스에 액세스하는 방법을 알아낼 수 없습니다 . – Adam

+0

섹션 5.7에는 uddi v3 서버에 인증하는 방법에 대한 샘플 코드가 있습니다. 이 샘플을 사용하여 전송 개체를 사용하여 Inquery 및 PublishService로 가져올 수 있습니다. 다음과 같이 입력해야합니다. UDDIInquiryPortType query = transport.getInquiryService(); UDDIPublicationPortType publish = transport.getPublishService(); 지금 당장은 작동중인 서버가 없어 전체 코드 샘플을 제공 할 수 없습니다. 지금 당장 당신에게 줄 수있는 것은 Javadoc에 대한 링크 일 것입니다 : http://ws.apache.org/juddi/apidocs3/index.html –

+0

감사합니다. – Adam

0

예, jUDDI에는 고유 한 UDDIv3 클라이언트가 있습니다. 여기

이 받는다는 정보를 < 의존성 > <의 groupId > org.apache.juddi < /의 groupId > < artifactId를 > juddi 클라이언트 </artifactId를 > < 버전의 > 3.1.5 </버전 > </종속성 >

현재 소스 트렁크에있는 amples는 향후 버전과 함께 번들로 제공됩니다. 예제는 여기에서 찾을 수 있습니다. http://svn.apache.org/repos/asf/juddi/trunk/juddi-examples/

jUDDI 사용자 가이드는 훌륭한 참고 자료이기도합니다.

0

나는 3.0.4 juddi 포털 번들

/* 
* Copyright 2001-2010 The Apache Software Foundation. 
* 
* Licensed under the Apache License, Version 2.0 (the "License"); 
* you may not use this file except in compliance with the License. 
* You may obtain a copy of the License at 
* 
*  http://www.apache.org/licenses/LICENSE-2.0 
* 
* Unless required by applicable law or agreed to in writing, software 
* distributed under the License is distributed on an "AS IS" BASIS, 
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
* See the License for the specific language governing permissions and 
* limitations under the License. 
* 
*/ 


import org.apache.juddi.api_v3.Publisher; 
import org.apache.juddi.api_v3.SavePublisher; 
import org.apache.juddi.v3.client.ClassUtil; 
import org.apache.juddi.v3.client.config.UDDIClientContainer; 
import org.apache.juddi.v3.client.transport.Transport; 
import org.apache.juddi.v3_service.JUDDIApiPortType; 
import org.uddi.api_v3.AuthToken; 
import org.uddi.api_v3.BusinessDetail; 
import org.uddi.api_v3.BusinessEntity; 
import org.uddi.api_v3.BusinessService; 
import org.uddi.api_v3.GetAuthToken; 
import org.uddi.api_v3.Name; 
import org.uddi.api_v3.SaveBusiness; 
import org.uddi.api_v3.SaveService; 
import org.uddi.api_v3.ServiceDetail; 
import org.uddi.v3_service.UDDIPublicationPortType; 
import org.uddi.v3_service.UDDISecurityPortType; 

public class SimplePublish { 
    private static UDDISecurityPortType security = null; 

    private static JUDDIApiPortType juddiApi = null; 
    private static UDDIPublicationPortType publish = null; 

    public SimplePublish() { 
     try { 
      String clazz = UDDIClientContainer.getUDDIClerkManager(null). 
       getClientConfig().getUDDINode("default").getProxyTransport(); 
      Class<?> transportClass = ClassUtil.forName(clazz, Transport.class); 
      if (transportClass!=null) { 
       Transport transport = (Transport) transportClass. 
        getConstructor(String.class).newInstance("default"); 

       security = transport.getUDDISecurityService(); 
       juddiApi = transport.getJUDDIApiService(); 
       publish = transport.getUDDIPublishService(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public void publish() { 
     try { 
      // Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges 
      // and can save other publishers). 
      GetAuthToken getAuthTokenRoot = new GetAuthToken(); 
      getAuthTokenRoot.setUserID("root"); 
      getAuthTokenRoot.setCred(""); 

      // Making API call that retrieves the authentication token for the 'root' user. 
      AuthToken rootAuthToken = security.getAuthToken(getAuthTokenRoot); 
      System.out.println ("root AUTHTOKEN = " + rootAuthToken.getAuthInfo()); 

      // Creating a new publisher that we will use to publish our entities to. 
      Publisher p = new Publisher(); 
      p.setAuthorizedName("my-publisher"); 
      p.setPublisherName("My Publisher"); 

      // Adding the publisher to the "save" structure, using the 'root' user authentication info and saving away. 
      SavePublisher sp = new SavePublisher(); 
      sp.getPublisher().add(p); 
      sp.setAuthInfo(rootAuthToken.getAuthInfo()); 
      juddiApi.savePublisher(sp); 

      // Our publisher is now saved, so now we want to retrieve its authentication token 
      GetAuthToken getAuthTokenMyPub = new GetAuthToken(); 
      getAuthTokenMyPub.setUserID("my-publisher"); 
      getAuthTokenMyPub.setCred(""); 
      AuthToken myPubAuthToken = security.getAuthToken(getAuthTokenMyPub); 
      System.out.println ("myPub AUTHTOKEN = " + myPubAuthToken.getAuthInfo()); 

      // Creating the parent business entity that will contain our service. 
      BusinessEntity myBusEntity = new BusinessEntity(); 
      Name myBusName = new Name(); 
      myBusName.setValue("My Business"); 
      myBusEntity.getName().add(myBusName); 

      // Adding the business entity to the "save" structure, using our publisher's authentication info and saving away. 
      SaveBusiness sb = new SaveBusiness(); 
      sb.getBusinessEntity().add(myBusEntity); 
      sb.setAuthInfo(myPubAuthToken.getAuthInfo()); 
      BusinessDetail bd = publish.saveBusiness(sb); 
      String myBusKey = bd.getBusinessEntity().get(0).getBusinessKey(); 
      System.out.println("myBusiness key: " + myBusKey); 

      // Creating a service to save. Only adding the minimum data: the parent business key retrieved from saving the business 
      // above and a single name. 
      BusinessService myService = new BusinessService(); 
      myService.setBusinessKey(myBusKey); 
      Name myServName = new Name(); 
      myServName.setValue("My Service"); 
      myService.getName().add(myServName); 
      // Add binding templates, etc... 

      // Adding the service to the "save" structure, using our publisher's authentication info and saving away. 
      SaveService ss = new SaveService(); 
      ss.getBusinessService().add(myService); 
      ss.setAuthInfo(myPubAuthToken.getAuthInfo()); 
      ServiceDetail sd = publish.saveService(ss); 
      String myServKey = sd.getBusinessService().get(0).getServiceKey(); 
      System.out.println("myService key: " + myServKey); 

      // Now you have a publisher saved who in turn published a business and service via the jUDDI API! 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
    }  

    public static void main (String args[]) { 
     SimplePublish sp = new SimplePublish(); 
     sp.publish(); 
    } 
} 

에 다음 코드를 시도하고

받는다는

<dependency> 
     <groupId>org.apache.juddi</groupId> 
     <artifactId>juddi-client</artifactId> 
     <version>3.0.2</version> 
     </dependency> 

depandency 다음과 같은 라이브러리를 사용하고이 jar 파일

축 2-adb-1.5.4.jar

그게 전부 내 코드가 작동하고 잘

관련 문제