wsit
  1. wsit
  2. WSIT-548

SSL M2S interop test fails when using MEX instead of ?wsdl

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: current
    • Fix Version/s: None
    • Component/s: mex
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

      Description

      An SSL based SecureConversation interop test fails in the M->S mode when using MEX.
      When the MEX URL https://localhost:8181/jaxws-sc5/simple is provided to the MS
      client instead of https://localhost:8181/jaxws-sc5/simple?wsdl, the test fails
      throwing the error "System.InvalidOperationException: Metadata contains a
      reference that cannot be resolved:
      'https://karthik.india.sun.com:8181/jaxws-sc5/simple'. --->
      System.ArgumentException: The provided URI scheme 'https' is invalid; expected
      'http'." . Error log at [1].
      =========================
      [1]
      DynamicProxyFactory contructed with wsdlUri :
      https://karthik.india.sun.com:8181/jaxws-sc5/simple
      In DynamicProxyFactory constructor DynamicProxyFactory(wsdlUri =
      https://karthik.india.sun.com:8181/jaxws-sc5/simple ,dynamicProxyfactoryOptions
      = DynamicProxyFactoryOptions[Language=CS,FormatMode=Auto,CodeModifier=])
      In code to use WS-MEX in MS client
      endpoint address : https://karthik.india.sun.com:8181/jaxws-sc5/simple
      ERROR: System.InvalidOperationException: Metadata contains a reference that
      cannot be resolved: 'https://karthik.india.sun.com:8181/jaxws-sc5/simple'. --->
      System.ArgumentException: The provided URI scheme 'https' is invalid; expected
      'http'.
      Parameter name: via
      at System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
      at
      System.ServiceModel.Channels.HttpChannelFactory.ValidateCreateChannelParameters(EndpointAddress
      remoteAddress, Uri via)
      at
      System.ServiceModel.Channels.HttpChannelFactory.OnCreateChannel(EndpointAddress
      remoteAddress, Uri via)
      at
      System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress
      address, Uri via)
      at
      System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress
      address, Uri via)
      at
      System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress
      to, Uri via)
      at
      System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress
      address, Uri via)
      at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type
      channelType, EndpointAddress address, Uri via)
      at System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address,
      Uri via)
      at System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address)
      at
      System.ServiceModel.Description.MetadataExchangeClient.MetadataReferenceRetriever.DownloadMetadata(TimeoutHelper
      timeoutHelper)
      at
      System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper
      timeoutHelper)
      — End of inner exception stack trace —
      at
      System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper
      timeoutHelper)
      at
      System.ServiceModel.Description.MetadataExchangeClient.ResolveNext(ResolveCallState
      resolveCallState)
      at
      System.ServiceModel.Description.MetadataExchangeClient.GetMetadata(MetadataRetriever
      retriever)
      at System.ServiceModel.Description.MetadataExchangeClient.GetMetadata(Uri
      address, MetadataExchangeClientMode mode)
      at
      Microsoft.Xws.Test.Suite.Util.WsdlTestUtilities.DynamicProxy.DynamicProxyFactory.DownloadMetadata()
      at
      Microsoft.Xws.Test.Suite.Util.WsdlTestUtilities.DynamicProxy.DynamicProxyFactory..ctor(String
      wsdlUri, DynamicProxyFactoryOptions options)
      at
      XwsInterop.HostedClient.HostedClientSoapImpl.CreateProxy(HostedClientParameter[]
      parameters, String scenarioName, String wsdlUri, String contractName)
      at XwsInterop.HostedClient.HostedClientSoapImpl.runScenario(String
      featureName, String scenarioName, HostedClientParameter[] parameters)

        Activity

        Hide
        daveronge added a comment -

        Tested with GF 9.1x and the latest Metro 2.0 jars
        (http://javaweb.sfbay/java/re/wsit/2.0/nightly/bundles/b10-2009-04-28/wsit-2_0.zip)

        The issue is still valid.

        Show
        daveronge added a comment - Tested with GF 9.1x and the latest Metro 2.0 jars ( http://javaweb.sfbay/java/re/wsit/2.0/nightly/bundles/b10-2009-04-28/wsit-2_0.zip ) The issue is still valid.
        Hide
        ritzmann added a comment -

        Jiandong, could you analyze this issue?

        Show
        ritzmann added a comment - Jiandong, could you analyze this issue?
        Hide
        jdg6688 added a comment -

        Some suggestions to move forward:

        1. Try the Mex endpoint https://localhost:8181/jaxws-sc5/simple/mex
        instead of https://localhost:8181/jaxws-sc5/simple

        2. To check if the MEX endpoint is available at
        https://localhost:8181/jaxws-sc5/simple/mex by testing a Metro client against
        the service to see if it works.

        3. You need to explicitly enabled security on the client side to call the
        "https" service. Google the exception message
        "The provided URI scheme 'https' is invalid; expected 'http'"
        will show you how to do it.

        Thanks!

        Jiandong

        Show
        jdg6688 added a comment - Some suggestions to move forward: 1. Try the Mex endpoint https://localhost:8181/jaxws-sc5/simple/mex instead of https://localhost:8181/jaxws-sc5/simple 2. To check if the MEX endpoint is available at https://localhost:8181/jaxws-sc5/simple/mex by testing a Metro client against the service to see if it works. 3. You need to explicitly enabled security on the client side to call the "https" service. Google the exception message "The provided URI scheme 'https' is invalid; expected 'http'" will show you how to do it. Thanks! Jiandong
        Hide
        jdg6688 added a comment -

        Metro 2.0 waived.

        Show
        jdg6688 added a comment - Metro 2.0 waived.
        Hide
        Marek Potociar added a comment -

        Updated fix version field

        Show
        Marek Potociar added a comment - Updated fix version field

          People

          • Assignee:
            jdg6688
            Reporter:
            karthikeyan_k
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: