Hi,

I want use MDS Service and by the set  ' Xpath ' , get some information
about another grid information ( IP of another grid node ).

but when i execute my programs , i see this error :

----------------------------
MDS Running
java.rmi.RemoteException: ERROR: Unable to invoke QueryRP operation.; nested
exception is:
        javax.net.ssl.SSLHandshakeException: unknown certificate
        at MDSclass.find(MDSclass.java:111)
        at MDSclass.main(MDSclass.java:47)
Caused by: javax.net.ssl.SSLHandshakeException: unknown certificate
        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
        at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
        at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2727)
        at org.apache.axis.client.Call.invoke(Call.java:2710)
        at org.apache.axis.client.Call.invoke(Call.java:2386)
        at org.apache.axis.client.Call.invoke(Call.java:2309)
        at org.apache.axis.client.Call.invoke(Call.java:1766)
        at
org.oasis.wsrf.properties.QueryResourcePropertiesSOAPBindingStub.queryResourceProperties(QueryResourcePropertiesSOAPBindingStub.java:415)
        at MDSclass.find(MDSclass.java:108)
        ... 1 more
Caused by: javax.net.ssl.SSLHandshakeException: unknown certificate
        at com.ibm.jsse.bv.a(Unknown Source)
        at com.ibm.jsse.bv.startHandshake(Unknown Source)
        at
org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
        at
org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:181)
        at
org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:397)
        at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:135)
        ... 12 more

--------------------------

my XPath contain this :

xpathQuery = "//*[local-name()='Address']"

------------------------
and my class that execute contain this :

import java.net.URL;
import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;
import javax.xml.rpc.Stub;

import org.apache.axis.message.MessageElement;
import org.apache.axis.message.addressing.Address;
import org.apache.axis.message.addressing.EndpointReferenceType;
import org.apache.axis.types.URI;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.globus.mds.aggregator.types.AggregatorContent;
import org.globus.mds.aggregator.types.AggregatorData;
import org.globus.wsrf.NoSuchResourceException;
import org.globus.wsrf.ResourceContext;
import org.globus.wsrf.ResourceContextException;
import org.globus.wsrf.ResourceKey;
import org.globus.wsrf.WSRFConstants;
import org.globus.wsrf.encoding.ObjectDeserializer;
import org.globus.wsrf.impl.security.authorization.NoAuthorization;
import org.globus.wsrf.security.Constants;
import org.globus.wsrf.security.SecurityManager;
import org.globus.wsrf.utils.AddressingUtils;
import org.oasis.wsrf.properties.QueryExpressionType;
import org.oasis.wsrf.properties.QueryResourcePropertiesResponse;
import org.oasis.wsrf.properties.QueryResourceProperties_Element;
import org.oasis.wsrf.properties.QueryResourceProperties_PortType;
import
org.oasis.wsrf.properties.WSResourcePropertiesServiceAddressingLocator;
import org.oasis.wsrf.servicegroup.EntryType;


public class MDSclass
{


      public static void main (String args[])
         {
              MDSclass MDS = new MDSclass();
               System.out.print("MDS Running \n");
               try
        {
            MDS.find();
            System.out.print("\n\nsubmitting job ... ");


            }
               catch (Exception e)
        {
                   e.printStackTrace();
               }
         }

    public void find() throws RemoteException {

        String indexURI = "
https://192.168.134.101:8443/wsrf/services/DefaultIndexService<https://192.168.134.101:8443/wsrf/services/ManagedJobFactoryService>
";
        EndpointReferenceType indexEPR = new EndpointReferenceType();
        try {
            indexEPR.setAddress(new Address(indexURI));
        } catch (Exception e) {

            throw new RemoteException("ERROR: Malformed index URI '" +
indexURI
                    + "'", e);
        }

        // Get QueryResourceProperties portType
        WSResourcePropertiesServiceAddressingLocator queryLocator;
        queryLocator = new WSResourcePropertiesServiceAddressingLocator();
        QueryResourceProperties_PortType query = null;
        try {
            query = queryLocator.getQueryResourcePropertiesPort(indexEPR);
        } catch (ServiceException e) {

            throw new RemoteException(
                    "ERROR: Unable to obtain query portType.", e);
        }

        // Setup security options
        ((Stub) query)._setProperty(Constants.GSI_TRANSPORT,
                Constants.SIGNATURE);
        ((Stub) query)._setProperty(Constants.AUTHORIZATION, NoAuthorization
                .getInstance());

        // The following XPath query retrieves all the files with the
specified
        // name
        String xpathQuery = "//*[local-name()='Address']";

        // Create request to QueryResourceProperties
        QueryExpressionType queryExpr = new QueryExpressionType();
        try {
            queryExpr.setDialect(new URI(WSRFConstants.XPATH_1_DIALECT));
        } catch (Exception e) {

            throw new RemoteException(
                    "ERROR: Malformed URI (WSRFConstants.XPATH_1_DIALECT)",
e);
        }
        queryExpr.setValue(xpathQuery);
        QueryResourceProperties_Element queryRequest = new
QueryResourceProperties_Element(
                queryExpr);

        // Invoke QueryResourceProperties
        QueryResourcePropertiesResponse queryResponse = null;
        try {
            queryResponse = query.queryResourceProperties(queryRequest);
        } catch (RemoteException e) {

            throw new RemoteException(
                    "ERROR: Unable to invoke QueryRP operation.", e);
        }
        // The response includes 0 or more entries from the index service.
        MessageElement[] entries = queryResponse.get_any();


        // If the number of entries is 0
        if (entries == null || entries.length == 0) {

            System.out.println("Number Of Entrys equals Zero");


        }
        else {

            for (int i = 0; i < entries.length; i++) {

                try {
                    // Access information contained in the entry. First of
all,
                    // we need to deserialize the entry...
                    EntryType entry = (EntryType)
ObjectDeserializer.toObject(
                            entries[i], EntryType.class);

                    //String IP = entry.get_any()[1].getValue();
                    //float price = Float.parseFloat(price_str);
                    System.out.println(entry);
                    /* Is this the cheapest? */

                } catch (Exception e) {

                    throw new RemoteException(
                            "Error when accessing index service entry.", e);
                }
            }


        }


    }

}

----------------------------

before I execute this program , i run " grid-proxy-init " .

do anyone can help me for solve this error ?

Thanks.

Omid.

Reply via email to