1

だから私は何日も探し回っていますが、まだ簡単な作業方法を見つけることができません. これは私がやろうとしていることです:

1 - UDDIに登録されているWebサービスをキーワードで検索・検索 2 - 適合するサービスを判断して利用・呼び出し

これはすべてJava(Eclipse)を使用しています。

独自の uddi を作成したり、サービスを公開したりしたくはありません。パブリック UDDI に格納されている既存のサービスを検索するだけです (1 つあると思いますよね?)。この 2 つのタスク (WS を見つける、WS を呼び出す) は簡単で、使用するサンプル コードを見つけることができると思っていましたが、見つかりません。

検索中に Juddi に出会いましたが、それが私のケースで機能するかどうか、インストールする価値があるかどうかはわかりません。

チュートリアルはありますか?提案?次のコードは見つかりましたが、そのライブラリを使用するための jar ファイルが見つかりません。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package uddi.createbulk;

import javax.xml.bind.JAXB;
import org.apache.juddi.v3.client.config.UDDIClient;
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.*;
import org.uddi.v3_service.UDDIInquiryPortType;
import org.uddi.v3_service.UDDIPublicationPortType;
import org.uddi.v3_service.UDDISecurityPortType;

/**
 *
 * @author Alex
 */
public class UddiFindService {

    private static UDDISecurityPortType security = null;
    private static JUDDIApiPortType juddiApi = null;
    private static UDDIPublicationPortType publish = null;
    private static UDDIInquiryPortType inquiry = null;

    public UddiFindService() {
        try {
            // create a manager and read the config in the archive; 
            // you can use your config file name
            UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
            // register the clerkManager with the client side container
            UDDIClientContainer.addClient(clerkManager);
            // a ClerkManager can be a client to multiple UDDI nodes, so 
            // supply the nodeName (defined in your uddi.xml.
            // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
            Transport transport = clerkManager.getTransport("default");
            // Now you create a reference to the UDDI API
            security = transport.getUDDISecurityService();
            juddiApi = transport.getJUDDIApiService();
            publish = transport.getUDDIPublishService();
            inquiry = transport.getUDDIInquiryService();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void find() {
        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("root");

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

            GetServiceDetail fs = new GetServiceDetail();
            fs.setAuthInfo(rootAuthToken.getAuthInfo());
            fs.getServiceKey().add("mykey");
            ServiceDetail serviceDetail = inquiry.getServiceDetail(fs);
            if (serviceDetail == null || serviceDetail.getBusinessService().isEmpty()) {
                System.out.println("mykey is not registered");
            } else {
                JAXB.marshal(serviceDetail, System.out);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String args[]) {
        UddiFindService sp = new UddiFindService();
        sp.find();
    }
}
4

0 に答える 0