Ok, but how can this be done?
I had to manually deploy the service since AdminClient did not - or I have done it wrong (didn't copy the .JAR file to the right spot before deploying).
 
Willem
-----Oorspronkelijk bericht-----
Van: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
Verzonden: dinsdag 25 oktober 2005 0:13
Aan: [email protected]
Onderwerp: Re: WSDL2Java / Java2WSDL / !WSDL questions

When you deploy your service, specify your own WSDL file rather than let Axis generate a new one for you.

Anne

On 10/21/05, Willem Grooters <[EMAIL PROTECTED]> wrote:
I have received a WSDL file and created code from it using WSDL2Java
--server-side. Basic functions do work, but when creating a test client on
.NET, some types seem not solvable. One of them is "ArrayOfMedewerker" that
IS part of the application (the class does exist), quite obviously since the
type is in the WSDL that is the base for the code:
...
      <s:complexType name="MedewerkerResult">
        <s:complexContent mixed="false">
          <s:extension base="s0:BaseResult">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Medewerkers"
type="s0:ArrayOfMedewerker" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="ArrayOfMedewerker">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Medewerker"
nillable="true" type="s0:Medewerker" />
        </s:sequence>
      </s:complexType>
...
     <s:element name="GetMedewerkerDetailResult" type="s0:MedewerkerResult"
/>
...
  <message name="GetMedewerkerDetailSoapOut">
    <part name="GetMedewerkerDetailResult"
element="s0:GetMedewerkerDetailResult" />
  </message>
...
    <operation name="GetMedewerkerDetail">
      <input message="s0:GetMedewerkerDetailSoapIn" />
      <output message="s0:GetMedewerkerDetailSoapOut" />
    </operation>
...
  <service name="OrganisatieWebService">
    <port name="OrganisatieWebServiceSoap"
binding="s0:OrganisatieWebServiceSoap">
      <soap:address location=" http://xxx/OrganisatieWebService.asmx" />
    </port>
  </service>

The code generated by WSDL2Java does include code for the class:

ArrayOfMedewerker.java

public class ArrayOfMedewerker  implements java.io.Serializable {
    public ArrayOfMedewerker() {

as part of a class MedewerkerResult:

MedewerkerResult.java

    private xxx.webservices.organisatie.ArrayOfMedewerker medewerkers;


The servicecode itself contains this operation:
OrganisatieWebServiceSoap.java

    public xxx.webservices.organisatie.ArrayOfMedewerker
        getMedewerkerDetail(
                xxx.ArrayOfSleutel sleutels,
                boolean zoekMetAfwijking,
                boolean zoekOokExpired,
                int maxResultaatGroepen,
                XXX.PersoonOpties persoon)
         throws java.rmi.RemoteException;

(The service has not yet beeen coded in OrganisatieWebServiceSoapImpl.java
it will simply return NULL, but that is (I think) irrevant)

A collegue it ceating a .NET appliaction for testing, but his IDE complains:
Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 1.1.4322.573]
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

icrosoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 1.1.4322.573]
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

Schema validation warning: Namespace 'http://organisatie.webservices.xxx ' is
not available to be referenced in this schema.
Schema validation warning: Type
'http://xxx/webservices/organisatie:ArrayOfMedewerker' is not declared.
Schema validation warning: Type
'http://xxx/webservices/organisatie:ArrayOfMedewerker' is not declared.
Schema validation warning: Type
...
Warning: Schema could not be validated. Class generation may fail or may
produce incorrect results.

Error: Unable to import binding 'OrganisatieWebServiceSoapSoapBinding' from
namespace ' http://xxx/webservices/organisatie'.
  - Unable to import operation 'getMedewerkerDetail'.
  - The datatype 'http://xxx/webservices/organisatie:ArrayOfSleutel '
is missing.

So, I checked the WSDL as delivered by the service (http:<service>/wsdl) but
I hade to traverse from the operation upwrad to find the definitions:

- <wsdl:operation name="getMedewerkerDetail">
<wsdlsoap:operation
soapAction="http://xxx/webservices/organisatie/GetMedewerkerDetail" />
- <wsdl:input name="getMedewerkerDetailRequest">
<wsdlsoap:body namespace="http://xxx/webservices/organisatie" use="literal"
/>
</wsdl:input>
- <wsdl:output name="getMedewerkerDetailResponse">
<wsdlsoap:body namespace="http://xxx/webservices/organisatie" use="literal"
/>
</wsdl:output>
</wsdl:operation>
....
- <wsdl:message name="getMedewerkerDetailResponse">
<wsdl:part element="impl:optiesResponse" name="parameters" />
</wsdl:message>
...
- <element name="optiesResponse">
- <complexType>
- <sequence>
<element name="Medewerkers" type="impl:ArrayOfMedewerker" />
</sequence>
</complexType>
</element>

and there is indeed no definition of ArayOfMedewerker. Instead, it talks
about "medewerkers" being implemented in "ArrayOfMedewerker" (that's the way
I read it) - and this type is indeed not defined in here.

I would expect that the code, generated from a WSDL, would return similar
data as the base WSDL when ?wsdl was used!

Next, my collegue requested a WSDL genereated from the code - using
Java2WSDL, but the documentation I found is VERY sparse on how to craete a
full WSDL from the code into one file. I tried several options but none gave
me the full description. Or would the result be the same as "?wsdl" to the
service?

(Due to security policies, domain has been replaced; the full path of the
servre has been changes as well)


Disclaimer:
The information contained in this E-mail and its attachments is confidential
and may be legally privileged. It is intended solely for the use of the
individual or entity to whom it is addressed and others authorized to
receive it. If you are not the intended recipient you are hereby notified
that any disclosure, copying, distribution or taking any action in reliance
of the contents of this E-mail and any attachments is strictly prohibited
and may be unlawful. The CIP or ISC is neither liable for the proper and
complete transmission of the information contained in this E-mail and any
attachments nor for any delay in its receipt. If received in error, please
contact The CIP or ISC on +31(0)522 722222 quoting the name of the sender
and the addressee and then delete it from your system. Please note that  the
The CIP or ISC does not accept any responsibility for viruses and it is your
responsibility to scan the E-mail and attachments (if any). No contracts may
be concluded on behalf of The CIP or ISC by means of E-mail communications.





Disclaimer:

The information contained in this E-mail and its attachments is confidential and may be legally privileged. It is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or taking any action in reliance of the contents of this E-mail and any attachments is strictly prohibited and may be unlawful. The CIP or ISC is neither liable for the proper and complete transmission of the information contained in this E-mail and any attachments nor for any delay in its receipt. If received in error, please contact The CIP or ISC on +31(0)522 722222 quoting the name of the sender and the addressee and then delete it from your system. Please note that the The CIP or ISC does not accept any responsibility for viruses and it is your responsibility to scan the E-mail and attachments (if any). No contracts may be concluded on behalf of The CIP or ISC by means of E-mail communications.



Reply via email to