Error Consuming a SOAP Web Service - web-services

I am trying to consume a web service that is exposed by [Percussion CMS][1] in order to create content items programmatically. When attempting to add the web reference in Visual Studio 2008, however, Visual Studio alerts with me the following:
The document was understood, but it
could not be processed:
The WSDL document contains links that could not be resolved.
DTD is prohibited in this XML document.
I have no experience working with Percussion CMS, so I haven't a clue where to start to resolve this problem. Is there some Visual Studio setting that I might be able to override to make this work?
I've already requested assistance from the Percussion tech support, but that was Monday and I haven't gotten any useful/helpful information back.
Edit: Just in case this helps resolve the issue, below is the entire WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="content" targetNamespace="urn:www.percussion.com/6.0.0/content" xmlns:com="urn:www.percussion.com/6.0.0/common" xmlns:con="urn:www.percussion.com/6.0.0/content" xmlns:flt="urn:www.percussion.com/6.0.0/faults" xmlns:ns="urn:www.percussion.com/6.0.0/systemServices" xmlns:ns1="urn:www.percussion.com/6.0.0/uiServices" xmlns:ns2="urn:www.percussion.com/6.0.0/assemblyServices" xmlns:ns3="urn:www.percussion.com/6.0.0/securityServices" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="urn:www.percussion.com/6.0.0/faults" schemaLocation="../faults.xsd">
</xsd:import>
</xsd:schema>
<xsd:schema targetNamespace="urn:www.percussion.com/6.0.0/content" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="content.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="AuthenticationHeader">
<wsdl:part element="com:PSAuthenticationHeader" name="Session"/>
</wsdl:message>
<wsdl:message name="empty"/>
<wsdl:message name="LoadKeywordsRequest">
<wsdl:part element="con:LoadKeywordsRequest" name="LoadKeywordsRequest"/>
</wsdl:message>
<wsdl:message name="LoadKeywordsResponse">
<wsdl:part element="con:LoadKeywordsResponse" name="LoadKeywordsResponse"/>
</wsdl:message>
<wsdl:message name="LoadLocalesRequest">
<wsdl:part element="con:LoadLocalesRequest" name="LoadLocalesRequest"/>
</wsdl:message>
<wsdl:message name="LoadLocalesResponse">
<wsdl:part element="con:LoadLocalesResponse" name="LoadLocalesResponse"/>
</wsdl:message>
<wsdl:message name="LoadTranslationSettingsResponse">
<wsdl:part element="con:LoadTranslationSettingsResponse" name="LoadTranslationSettingsResponse"/>
</wsdl:message>
<wsdl:message name="LoadContentTypesRequest">
<wsdl:part element="con:LoadContentTypesRequest" name="LoadContentTypesRequest"/>
</wsdl:message>
<wsdl:message name="LoadContentTypesResponse">
<wsdl:part element="con:LoadContentTypesResponse" name="LoadContentTypesResponse"/>
</wsdl:message>
<wsdl:message name="CreateItemsRequest">
<wsdl:part element="con:CreateItemsRequest" name="CreateItemsRequest"/>
</wsdl:message>
<wsdl:message name="CreateItemsResponse">
<wsdl:part element="con:CreateItemsResponse" name="CreateItemsResponse"/>
</wsdl:message>
<wsdl:message name="FindItemsRequest">
<wsdl:part element="con:FindItemsRequest" name="FindItemsRequest"/>
</wsdl:message>
<wsdl:message name="FindItemsResponse">
<wsdl:part element="con:FindItemsResponse" name="FindItemsResponse"/>
</wsdl:message>
<wsdl:message name="LoadItemsRequest">
<wsdl:part element="con:LoadItemsRequest" name="LoadItemsRequest"/>
</wsdl:message>
<wsdl:message name="LoadItemsResponse">
<wsdl:part element="con:LoadItemsResponse" name="LoadItemsResponse"/>
</wsdl:message>
<wsdl:message name="SaveItemsRequest">
<wsdl:part element="con:SaveItemsRequest" name="SaveItemsRequest"/>
</wsdl:message>
<wsdl:message name="SaveItemsResponse">
<wsdl:part element="con:SaveItemsResponse" name="SaveItemsResponse"/>
</wsdl:message>
<wsdl:message name="DeleteItemsRequest">
<wsdl:part element="con:DeleteItemsRequest" name="DeleteItemsRequest"/>
</wsdl:message>
<wsdl:message name="ViewItemsRequest">
<wsdl:part element="con:ViewItemsRequest" name="ViewItemsRequest"/>
</wsdl:message>
<wsdl:message name="ViewItemsResponse">
<wsdl:part element="con:ViewItemsResponse" name="ViewItemsResponse"/>
</wsdl:message>
<wsdl:message name="PrepareForEditRequest">
<wsdl:part element="con:PrepareForEditRequest" name="PrepareForEditRequest"/>
</wsdl:message>
<wsdl:message name="PrepareForEditResponse">
<wsdl:part element="con:PrepareForEditResponse" name="PrepareForEditResponse"/>
</wsdl:message>
<wsdl:message name="ReleaseFromEditRequest">
<wsdl:part element="con:ReleaseFromEditRequest" name="ReleaseFromEditRequest"/>
</wsdl:message>
<wsdl:message name="NewCopiesRequest">
<wsdl:part element="con:NewCopiesRequest" name="NewCopiesRequest"/>
</wsdl:message>
<wsdl:message name="NewCopiesResponse">
<wsdl:part element="con:NewCopiesResponse" name="NewCopiesResponse"/>
</wsdl:message>
<wsdl:message name="NewPromotableVersionsRequest">
<wsdl:part element="con:NewPromotableVersionsRequest" name="NewPromotableVersionsRequest"/>
</wsdl:message>
<wsdl:message name="NewPromotableVersionsResponse">
<wsdl:part element="con:NewPromotableVersionsResponse" name="NewPromotableVersionsResponse"/>
</wsdl:message>
<wsdl:message name="NewTranslationsRequest">
<wsdl:part element="con:NewTranslationsRequest" name="NewTranslationsRequest"/>
</wsdl:message>
<wsdl:message name="NewTranslationsResponse">
<wsdl:part element="con:NewTranslationsResponse" name="NewTranslationsResponse"/>
</wsdl:message>
<wsdl:message name="FindRevisionsRequest">
<wsdl:part element="con:FindRevisionsRequest" name="FindRevisionsRequest"/>
</wsdl:message>
<wsdl:message name="FindRevisionsResponse">
<wsdl:part element="con:FindRevisionsResponse" name="FindRevisionsResponse"/>
</wsdl:message>
<wsdl:message name="PromoteRevisionsRequest">
<wsdl:part element="con:PromoteRevisionsRequest" name="PromoteRevisionsRequest"/>
</wsdl:message>
<wsdl:message name="CheckinItemsRequest">
<wsdl:part element="con:CheckinItemsRequest" name="CheckinItemsRequest"/>
</wsdl:message>
<wsdl:message name="CheckoutItemsRequest">
<wsdl:part element="con:CheckoutItemsRequest" name="CheckoutItemsRequest"/>
</wsdl:message>
<wsdl:message name="GetAssemblyUrlsRequest">
<wsdl:part element="con:GetAssemblyUrlsRequest" name="GetAssemblyUrlsRequest"/>
</wsdl:message>
<wsdl:message name="GetAssemblyUrlsResponse">
<wsdl:part element="con:GetAssemblyUrlsResponse" name="GetAssemblyUrlsResponse"/>
</wsdl:message>
<wsdl:message name="CreateChildEntriesRequest">
<wsdl:part element="con:CreateChildEntriesRequest" name="CreateChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="CreateChildEntriesResponse">
<wsdl:part element="con:CreateChildEntriesResponse" name="CreateChildEntriesResponse"/>
</wsdl:message>
<wsdl:message name="LoadChildEntriesRequest">
<wsdl:part element="con:LoadChildEntriesRequest" name="LoadChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="LoadChildEntriesResponse">
<wsdl:part element="con:LoadChildEntriesResponse" name="LoadChildEntriesResponse"/>
</wsdl:message>
<wsdl:message name="SaveChildEntriesRequest">
<wsdl:part element="con:SaveChildEntriesRequest" name="SaveChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="DeleteChildEntriesRequest">
<wsdl:part element="con:DeleteChildEntriesRequest" name="DeleteChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="ReorderChildEntriesRequest">
<wsdl:part element="con:ReorderChildEntriesRequest" name="ReorderChildEntriesRequest"/>
</wsdl:message>
<wsdl:message name="AddContentRelationsRequest">
<wsdl:part element="con:AddContentRelationsRequest" name="AddContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="AddContentRelationsResponse">
<wsdl:part element="con:AddContentRelationsResponse" name="AddContentRelationsResponse"/>
</wsdl:message>
<wsdl:message name="LoadContentRelationsRequest">
<wsdl:part element="con:LoadContentRelationsRequest" name="LoadContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="LoadContentRelationsResponse">
<wsdl:part element="con:LoadContentRelationsResponse" name="LoadContentRelationsResponse"/>
</wsdl:message>
<wsdl:message name="SaveContentRelationsRequest">
<wsdl:part element="con:SaveContentRelationsRequest" name="SaveContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="DeleteContentRelationsRequest">
<wsdl:part element="con:DeleteContentRelationsRequest" name="DeleteContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="ReorderContentRelationsRequest">
<wsdl:part element="con:ReorderContentRelationsRequest" name="ReorderContentRelationsRequest"/>
</wsdl:message>
<wsdl:message name="FindChildItemsRequest">
<wsdl:part element="con:FindChildItemsRequest" name="FindChildItemsRequest"/>
</wsdl:message>
<wsdl:message name="FindChildItemsResponse">
<wsdl:part element="con:FindChildItemsResponse" name="FindChildItemsResponse"/>
</wsdl:message>
<wsdl:message name="FindParentItemsRequest">
<wsdl:part element="con:FindParentItemsRequest" name="FindParentItemsRequest"/>
</wsdl:message>
<wsdl:message name="FindParentItemsResponse">
<wsdl:part element="con:FindParentItemsResponse" name="FindParentItemsResponse"/>
</wsdl:message>
<wsdl:message name="LoadFoldersRequest">
<wsdl:part element="con:LoadFoldersRequest" name="LoadFoldersRequest"/>
</wsdl:message>
<wsdl:message name="LoadFoldersResponse">
<wsdl:part element="con:LoadFoldersResponse" name="LoadFoldersResponse"/>
</wsdl:message>
<wsdl:message name="SaveFoldersRequest">
<wsdl:part element="con:SaveFoldersRequest" name="SaveFoldersRequest"/>
</wsdl:message>
<wsdl:message name="SaveFoldersResponse">
<wsdl:part element="con:SaveFoldersResponse" name="SaveFoldersResponse"/>
</wsdl:message>
<wsdl:message name="DeleteFoldersRequest">
<wsdl:part element="con:DeleteFoldersRequest" name="DeleteFoldersRequest"/>
</wsdl:message>
<wsdl:message name="AddFolderRequest">
<wsdl:part element="con:AddFolderRequest" name="AddFolderRequest"/>
</wsdl:message>
<wsdl:message name="AddFolderResponse">
<wsdl:part element="con:AddFolderResponse" name="AddFolderResponse"/>
</wsdl:message>
<wsdl:message name="AddFolderTreeRequest">
<wsdl:part element="con:AddFolderTreeRequest" name="AddFolderTreeRequest"/>
</wsdl:message>
<wsdl:message name="AddFolderTreeResponse">
<wsdl:part element="con:AddFolderTreeResponse" name="AddFolderTreeResponse"/>
</wsdl:message>
<wsdl:message name="FindFolderChildrenRequest">
<wsdl:part element="con:FindFolderChildrenRequest" name="FindFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="FindFolderChildrenResponse">
<wsdl:part element="con:FindFolderChildrenResponse" name="FindFolderChildrenResponse"/>
</wsdl:message>
<wsdl:message name="AddFolderChildrenRequest">
<wsdl:part element="con:AddFolderChildrenRequest" name="AddFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="RemoveFolderChildrenRequest">
<wsdl:part element="con:RemoveFolderChildrenRequest" name="RemoveFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="MoveFolderChildrenRequest">
<wsdl:part element="con:MoveFolderChildrenRequest" name="MoveFolderChildrenRequest"/>
</wsdl:message>
<wsdl:message name="FindFolderPathRequest">
<wsdl:part element="con:FindFolderPathRequest" name="FindFolderPathRequest"/>
</wsdl:message>
<wsdl:message name="FindFolderPathResponse">
<wsdl:part element="con:FindFolderPathResponse" name="FindFolderPathResponse"/>
</wsdl:message>
<wsdl:message name="FindPathIdsRequest">
<wsdl:part element="con:FindPathIdsRequest" name="FindPathIdsRequest"/>
</wsdl:message>
<wsdl:message name="FindPathIdsResponse">
<wsdl:part element="con:FindPathIdsResponse" name="FindPathIdsResponse"/>
</wsdl:message>
<wsdl:message name="ContractViolationFaultMessage">
<wsdl:part element="flt:PSContractViolationFault" name="fault"/>
</wsdl:message>
<wsdl:message name="InvalidSessionFaultMessage">
<wsdl:part element="flt:PSInvalidSessionFault" name="fault"/>
</wsdl:message>
<wsdl:message name="NotAuthorizedFaultMessage">
<wsdl:part element="flt:PSNotAuthorizedFault" name="fault"/>
</wsdl:message>
<wsdl:message name="UnknownContentTypeFaultMessage">
<wsdl:part element="flt:PSUnknownContentTypeFault" name="fault"/>
</wsdl:message>
<wsdl:message name="UnknownChildFaultMessage">
<wsdl:part element="flt:PSUnknownChildFault" name="fault"/>
</wsdl:message>
<wsdl:message name="ErrorResultsFaultMessage">
<wsdl:part element="flt:PSErrorResultsFault" name="fault"/>
</wsdl:message>
<wsdl:message name="ErrorsFaultMessage">
<wsdl:part element="flt:PSErrorsFault" name="fault"/>
</wsdl:message>
<wsdl:portType name="content">
<wsdl:operation name="LoadKeywords">
<wsdl:input message="con:LoadKeywordsRequest"/>
<wsdl:output message="con:LoadKeywordsResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="LoadLocales">
<wsdl:input message="con:LoadLocalesRequest"/>
<wsdl:output message="con:LoadLocalesResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="LoadTranslationSettings">
<wsdl:input message="con:empty"/>
<wsdl:output message="con:LoadTranslationSettingsResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="LoadContentTypes">
<wsdl:input message="con:LoadContentTypesRequest"/>
<wsdl:output message="con:LoadContentTypesResponse"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="CreateItems">
<wsdl:input message="con:CreateItemsRequest"/>
<wsdl:output message="con:CreateItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownContentTypeFaultMessage" name="UnknownContentTypeFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>
</wsdl:operation>
<wsdl:operation name="FindItems">
<wsdl:input message="con:FindItemsRequest"/>
<wsdl:output message="con:FindItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
</wsdl:operation>
<wsdl:operation name="LoadItems">
<wsdl:input message="con:LoadItemsRequest"/>
<wsdl:output message="con:LoadItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="SaveItems">
<wsdl:input message="con:SaveItemsRequest"/>
<wsdl:output message="con:SaveItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="DeleteItems">
<wsdl:input message="con:DeleteItemsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="ViewItems">
<wsdl:input message="con:ViewItemsRequest"/>
<wsdl:output message="con:ViewItemsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="PrepareForEdit">
<wsdl:input message="con:PrepareForEditRequest"/>
<wsdl:output message="con:PrepareForEditResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="ReleaseFromEdit">
<wsdl:input message="con:ReleaseFromEditRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="NewCopies">
<wsdl:input message="con:NewCopiesRequest"/>
<wsdl:output message="con:NewCopiesResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="NewPromotableVersions">
<wsdl:input message="con:NewPromotableVersionsRequest"/>
<wsdl:output message="con:NewPromotableVersionsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="NewTranslations">
<wsdl:input message="con:NewTranslationsRequest"/>
<wsdl:output message="con:NewTranslationsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="FindRevisions">
<wsdl:input message="con:FindRevisionsRequest"/>
<wsdl:output message="con:FindRevisionsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
</wsdl:operation>
<wsdl:operation name="PromoteRevisions">
<wsdl:input message="con:PromoteRevisionsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="CheckinItems">
<wsdl:input message="con:CheckinItemsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="CheckoutItems">
<wsdl:input message="con:CheckoutItemsRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="GetAssemblyUrls">
<wsdl:input message="con:GetAssemblyUrlsRequest"/>
<wsdl:output message="con:GetAssemblyUrlsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
</wsdl:operation>
<wsdl:operation name="CreateChildEntries">
<wsdl:input message="con:CreateChildEntriesRequest"/>
<wsdl:output message="con:CreateChildEntriesResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
</wsdl:operation>
<wsdl:operation name="LoadChildEntries">
<wsdl:input message="con:LoadChildEntriesRequest"/>
<wsdl:output message="con:LoadChildEntriesResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorResultsFaultMessage" name="ErrorResultsFault"/>
</wsdl:operation>
<wsdl:operation name="SaveChildEntries">
<wsdl:input message="con:SaveChildEntriesRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="DeleteChildEntries">
<wsdl:input message="con:DeleteChildEntriesRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="ReorderChildEntries">
<wsdl:input message="con:ReorderChildEntriesRequest"/>
<wsdl:output message="con:empty"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:UnknownChildFaultMessage" name="UnknownChildFault"/>
<wsdl:fault message="con:ErrorsFaultMessage" name="ErrorsFault"/>
</wsdl:operation>
<wsdl:operation name="AddContentRelations">
<wsdl:input message="con:AddContentRelationsRequest"/>
<wsdl:output message="con:AddContentRelationsResponse"/>
<wsdl:fault message="con:ContractViolationFaultMessage" name="ContractViolationFault"/>
<wsdl:fault message="con:InvalidSessionFaultMessage" name="InvalidSessionFault"/>
<wsdl:fault message="con:NotAuthorizedFaultMessage" name="NotAuthorizedFault"/>

This is way too late to help you, but maybe not for the next guy....
My understanding is that .NET and J2EE webservices use slightly different dialects of WSDL. Visual Studio doesn't understand the other one. (The great thing about standards is that there are so many of them to choose from....)
As of v6.7 (and probably earlier), there are two sample applications for communicating with Percussion via the web services, one for Java, one for C#. The C# version can be found in:
\WebServices\6.0.0\sample\loader\csharp
Under that directory, you will find "Web References" and below that "RxWebServices."
The RxWebServices directory contains WSDL which allows your .NET code to work with Percussion.

Related

generate EJB from WSDL with wsdl2java

how do I generate fully annotated Java code from which to implement this sample temperature converter service?
<wsdl:definitions targetNamespace="https://www.w3schools.com/xml/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="https://www.w3schools.com/xml/">
<s:element name="FahrenheitToCelsius">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Fahrenheit" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="FahrenheitToCelsiusResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FahrenheitToCelsiusResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CelsiusToFahrenheit">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Celsius" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="CelsiusToFahrenheitResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CelsiusToFahrenheitResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="string" nillable="true" type="s:string"/>
</s:schema>
</wsdl:types>
<wsdl:message name="FahrenheitToCelsiusSoapIn">
<wsdl:part name="parameters" element="tns:FahrenheitToCelsius"/>
</wsdl:message>
<wsdl:message name="FahrenheitToCelsiusSoapOut">
<wsdl:part name="parameters" element="tns:FahrenheitToCelsiusResponse"/>
</wsdl:message>
<wsdl:message name="CelsiusToFahrenheitSoapIn">
<wsdl:part name="parameters" element="tns:CelsiusToFahrenheit"/>
</wsdl:message>
<wsdl:message name="CelsiusToFahrenheitSoapOut">
<wsdl:part name="parameters" element="tns:CelsiusToFahrenheitResponse"/>
</wsdl:message>
<wsdl:message name="FahrenheitToCelsiusHttpPostIn">
<wsdl:part name="Fahrenheit" type="s:string"/>
</wsdl:message>
<wsdl:message name="FahrenheitToCelsiusHttpPostOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
<wsdl:message name="CelsiusToFahrenheitHttpPostIn">
<wsdl:part name="Celsius" type="s:string"/>
</wsdl:message>
<wsdl:message name="CelsiusToFahrenheitHttpPostOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
<wsdl:portType name="TempConvertSoap">
<wsdl:operation name="FahrenheitToCelsius">
<wsdl:input message="tns:FahrenheitToCelsiusSoapIn"/>
<wsdl:output message="tns:FahrenheitToCelsiusSoapOut"/>
</wsdl:operation>
<wsdl:operation name="CelsiusToFahrenheit">
<wsdl:input message="tns:CelsiusToFahrenheitSoapIn"/>
<wsdl:output message="tns:CelsiusToFahrenheitSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="TempConvertHttpPost">
<wsdl:operation name="FahrenheitToCelsius">
<wsdl:input message="tns:FahrenheitToCelsiusHttpPostIn"/>
<wsdl:output message="tns:FahrenheitToCelsiusHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="CelsiusToFahrenheit">
<wsdl:input message="tns:CelsiusToFahrenheitHttpPostIn"/>
<wsdl:output message="tns:CelsiusToFahrenheitHttpPostOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TempConvertSoap" type="tns:TempConvertSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="FahrenheitToCelsius">
<soap:operation soapAction="https://www.w3schools.com/xml/FahrenheitToCelsius" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="CelsiusToFahrenheit">
<soap:operation soapAction="https://www.w3schools.com/xml/CelsiusToFahrenheit" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="TempConvertSoap12" type="tns:TempConvertSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="FahrenheitToCelsius">
<soap12:operation soapAction="https://www.w3schools.com/xml/FahrenheitToCelsius" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="CelsiusToFahrenheit">
<soap12:operation soapAction="https://www.w3schools.com/xml/CelsiusToFahrenheit" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="TempConvertHttpPost" type="tns:TempConvertHttpPost">
<http:binding verb="POST"/>
<wsdl:operation name="FahrenheitToCelsius">
<http:operation location="/FahrenheitToCelsius"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="CelsiusToFahrenheit">
<http:operation location="/CelsiusToFahrenheit"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TempConvert">
<wsdl:port name="TempConvertSoap" binding="tns:TempConvertSoap">
<soap:address location="http://www.w3schools.com/xml/tempconvert.asmx"/>
</wsdl:port>
<wsdl:port name="TempConvertSoap12" binding="tns:TempConvertSoap12">
<soap12:address location="http://www.w3schools.com/xml/tempconvert.asmx"/>
</wsdl:port>
<wsdl:port name="TempConvertHttpPost" binding="tns:TempConvertHttpPost">
<http:address location="http://www.w3schools.com/xml/tempconvert.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
This is what I've generated through Netbeans by clicking "new web service from WSDL":
package net.bounceme.dur.wsdl.consume;
import javax.ejb.Stateless;
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceProvider;
#Stateless
#ServiceMode(value = javax.xml.ws.Service.Mode.PAYLOAD)
#WebServiceProvider(serviceName = "TempConvert", portName = "TempConvertSoap", targetNamespace = "https://www.w3schools.com/xml/", wsdlLocation = "WEB-INF/wsdl/NewWebServiceFromWSDL1/www.w3schools.com/xml/tempconvert.asmx.wsdl")
public class TempConvertFromWSDL implements javax.xml.ws.Provider<javax.xml.transform.Source> {
#Override
public javax.xml.transform.Source invoke(javax.xml.transform.Source source) {
throw new UnsupportedOperationException("Not implemented yet.");
}
}
This code seems lacking.
(Notably, at least to me, is that the URL isn't quite, exactly, matched in the generated annotations for the class.)
This is in order to inject into a Servlet.

Changing default Content-Type in SOAP body through WSDL

I have created a web service using Axis2 and I want to change the Content-type of my response from text/xml; charset=UTF-8 to text/xml; charset=utf-8.
Only when I send the Content-type as text/xml; charset=utf-8 in request header, it returns corretly. But in my case, I don't have that flexibility. So, I need to find a way to change th default Content-Type to text/xml; charset=utf-8.
Can some one give an idea on how to change this?
I have tried below like options but no any luck.
WSDL :
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="GradeTenMathService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xs:schema>
<xs:import namespace="http://tempuri.org/" schemaLocation="Math.xsd"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="AdditionResponse">
<wsdl:part name="AdditionRS" element="tns:AdditionResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AdditionRequest">
<wsdl:part name="AdditionRQ" element="tns:AdditionRequest">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DevisionResponse">
<wsdl:part name="DevisionRS" element="tns:DevisionResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DevisionRequest">
<wsdl:part name="DevisionRQ" element="tns:DevisionRequest">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="GradeTenMathPortType">
<wsdl:operation name="Addition">
<wsdl:input message="tns:AdditionRequest">
</wsdl:input>
<wsdl:output message="tns:AdditionResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Devision">
<wsdl:input message="tns:DevisionRequest">
</wsdl:input>
<wsdl:output message="tns:DevisionResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GradeTenMathBinding" type="tns:GradeTenMathPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Addition">
<soap:operation soapAction="Addition" style="document"/>
<wsdl:input>
<mime:content part="Addition" type="text/xml; charset=utf-8"/>
</wsdl:input>
<wsdl:output>
<mime:content part="Addition" type="text/xml; charset=utf-8"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Devision">
<soap:operation soapAction="Devision" style="document"/>
<wsdl:input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="GradeTenMath">
<wsdl:port name="GradeTenMathPort" binding="tns:GradeTenMathBinding">
<soap:address location="http://localhost:8081/axis2/services/GradeTenMath"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

The endpoint reference (EPR) for the Operation not found

I started learning Web Services. I wrote my first piece of code from the example that was given in the book. But when i run it, it does not behanve the way its supposed to! I see the wsdl file generated and see the error:
My WSDL file is:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://ts.ch01" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://ts.ch01" xmlns:intf="http://ts.ch01" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://ts.ch01" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="getTimeAsString">
<complexType/>
</element>
<element name="getTimeAsStringResponse">
<complexType>
<sequence>
<element name="getTimeAsStringReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getTimeAsElapsed">
<complexType/>
</element>
<element name="getTimeAsElapsedResponse">
<complexType>
<sequence>
<element name="getTimeAsElapsedReturn" type="xsd:long"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getTimeAsStringResponse">
<wsdl:part element="impl:getTimeAsStringResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getTimeAsElapsedResponse">
<wsdl:part element="impl:getTimeAsElapsedResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getTimeAsElapsedRequest">
<wsdl:part element="impl:getTimeAsElapsed" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getTimeAsStringRequest">
<wsdl:part element="impl:getTimeAsString" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="WSNewTestImpl">
<wsdl:operation name="getTimeAsString">
<wsdl:input message="impl:getTimeAsStringRequest" name="getTimeAsStringRequest">
</wsdl:input>
<wsdl:output message="impl:getTimeAsStringResponse" name="getTimeAsStringResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTimeAsElapsed">
<wsdl:input message="impl:getTimeAsElapsedRequest" name="getTimeAsElapsedRequest">
</wsdl:input>
<wsdl:output message="impl:getTimeAsElapsedResponse" name="getTimeAsElapsedResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WSNewTestImplSoapBinding" type="impl:WSNewTestImpl">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getTimeAsString">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getTimeAsStringRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getTimeAsStringResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTimeAsElapsed">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getTimeAsElapsedRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getTimeAsElapsedResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WSNewTestImplService">
<wsdl:port binding="impl:WSNewTestImplSoapBinding" name="WSNewTestImpl">
<wsdlsoap:address location="http://localhost:9090/WSTestOther/services/WSNewTestImpl"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
I am not sure what other information to provide, if you need anything just ask. I am using Tomcat 7.0
Also I see the error in console:
[ERROR] The endpoint reference (EPR) for the Operation not found is /WSTestOther/services/WSNewTestImplService and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.
org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /WSTestOther/services/WSNewTestImplService and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.
at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:102)
at org.apache.axis2.engine.Phase.invoke(Phase.java:329)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:168)
at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139)
at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:273)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
[WARN] Deprecated usage of OMElement#declareNamespace(String,String) with empty prefix

Please advise on the WSDL

I have created a WSDL to create a greeting service. Given below is the WSDL.
I am using thsi wsdl to create a generate and expose a web-service using the cxf:proxy-service in mule.
This is giving me errors.
Please review and help me undertand what is the problem with this WSDL.
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="HelloService"
targetNamespace="http://example.org/HelloService"
xmlns:tns="http://example.org/HelloService"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema targetNamespace="http://example.org/HelloService" >
<xsd:element name="LastName">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="lName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FirstName">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Greeting">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="greet" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="shortRequest">
<wsdl:part type="tns:LastName" name="lastName"/>
</wsdl:message>
<wsdl:message name="fullRequest">
<wsdl:part type="tns:FirstName" name="firstName"/>
<wsdl:part type="tns:LastName" name="lastName"/>
</wsdl:message>
<wsdl:message name="greetingResponse">
<wsdl:part type="tns:greeting" name="greetings"/>
</wsdl:message>
<wsdl:portType name="HelloServicePortType">
<wsdl:operation name="simpleGreeting">
<wsdl:input message="tns:shortRequest" name="shortRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponse" />
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<wsdl:input message="tns:fullRequest" name="fullRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponseFull" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloServiceSOAP" type="tns:HelloServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="simpleGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="shortRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="fullRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponseFull">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProxyService">
<wsdl:port binding="tns:HelloServiceSOAP" name="HelloServiceSOAPB">
<soap:address location="http://localhost:8080/HelloService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Please help me if there is something wrong in my WSDL.
It is not working when I use it in mule cxf:proxy-service.
FGiven below si the Mule Flow which is using this WSDL to expose service.
<flow name="WS_In">
<http:inbound-endpoint address="http://localhost:8080/HelloService" exchange-pattern="request-response">
<cxf:proxy-service wsdlLocation="classpath:globalid3.wsdl" namespace="http://example.org/HelloService" service="ProxyService" />
</http:inbound-endpoint>
<component>
<prototype-object class="com.example.ServiceProxy">
</prototype-object>
</component>
<echo-component></echo-component>
<logger level="INFO" />
</flow>
and the Error is :
org.mule.api.lifecycle.LifecycleException: Lifecycle Manager 'WS_In.stage1' phase 'start' does not support phase 'dispose'
at org.mule.lifecycle.AbstractLifecycleManager.invokePhase(AbstractLifecycleManager.java:156)
There is a casing issue in your WSDL. Instead of:
<wsdl:message name="greetingResponse">
<wsdl:part type="tns:greeting" name="greetings"/>
</wsdl:message>
you should have:
<wsdl:message name="greetingResponse">
<wsdl:part type="tns:Greeting" name="greetings"/>
</wsdl:message>
With this fixed, the following produces a web service that works fine when called from SOAPui:
<flow name="WS_In">
<http:inbound-endpoint address="http://localhost:8080/HelloService"
exchange-pattern="request-response">
<cxf:proxy-service wsdlLocation="classpath:globalid3.wsdl"
namespace="http://example.org/HelloService" service="ProxyService" />
</http:inbound-endpoint>
<custom-processor class="com.example.ServiceProxy" />
</flow>
Message processor:
package com.example;
import javax.xml.namespace.QName;
import org.apache.commons.lang.StringEscapeUtils;
import org.mule.api.MuleEvent;
import org.mule.api.MuleException;
import org.mule.api.processor.MessageProcessor;
public class ServiceProxy implements MessageProcessor
{
private final static QName SIMPLE_GREETING = new QName("http://example.org/HelloService",
"simpleGreeting");
public MuleEvent process(final MuleEvent event) throws MuleException
{
final QName operation = event.getFlowVariable("cxf_operation");
if (operation.equals(SIMPLE_GREETING))
{
final String lastName = event.getMuleContext()
.getExpressionLanguage()
.evaluate("xpath('/lastName').text", event);
final String responseXml = "<greetings><greet>Hi " + StringEscapeUtils.escapeXml(lastName)
+ "</greet></greetings>";
event.getMessage().setPayload(responseXml);
return event;
}
throw new UnsupportedOperationException(operation.getLocalPart() + " " + operation.getNamespaceURI()
+ " " + operation.getPrefix());
}
}
There is one way to do this using cxf:jaxws-service, but you'll need to generate the service class. Take a look here on how to do this.
After that you can configure the service in a very simple way.
<cxf:jaxws-service
serviceClass="mypackage.webservices.MyServicePortType"
validationEnabled="false">
</cxf:jaxws-service>
The flow that is working is as below.
<flow name="WS_In">
<http:inbound-endpoint address="http://localhost:8080/HelloService" exchange-pattern="request-response">
<cxf:proxy-service wsdlLocation="classpath:helloservice.wsdl" namespace="http://example.org/HelloService" service="ProxyService" />
</http:inbound-endpoint>
<component>
<prototype-object class="com.example.ServiceProxy">
</prototype-object>
</component>
<echo-component></echo-component>
<logger level="INFO" />
</flow>
And the WSDL is
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="HelloService"
targetNamespace="http://example.org/HelloService"
xmlns:tns="http://example.org/HelloService"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="shortRequest">
<wsdl:part type="xsd:string" name="lastName"/>
</wsdl:message>
<wsdl:message name="fullRequest">
<wsdl:part type="xsd:string" name="firstName"/>
<wsdl:part type="xsd:string" name="lastName"/>
</wsdl:message>
<wsdl:message name="greetingResponse">
<wsdl:part type="xsd:string" name="greetings"/>
</wsdl:message>
<wsdl:portType name="HelloServicePortType">
<wsdl:operation name="simpleGreeting">
<wsdl:input message="tns:shortRequest" name="shortRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponse" />
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<wsdl:input message="tns:fullRequest" name="fullRequest" />
<wsdl:output message="tns:greetingResponse" name="greetingResponseFull" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloServiceSOAP" type="tns:HelloServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="simpleGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="shortRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="fullGreeting">
<soap:operation soapAction="" style="document" />
<wsdl:input name="fullRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetingResponseFull">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProxyService">
<wsdl:port binding="tns:HelloServiceSOAP" name="HelloServiceSOAPB">
<soap:address location="http://localhost:8080/HelloService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Thanks everyone for your help and support.

versioning of wsdl contracts

Can Anyone tell me way to version Wsdl contracts(wsdl first service) for major and minor versions.any running example will be very helpful.
The way I m following to version my wsdl is this.I am following Iona webservices versioning guidlines
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ProductServiceImplServicev2"
targetNamespace="http://service.dtechtalkcenter.com/servicev2"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://service.dtechtalkcenter.com/servicev2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" `enter code here`
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:v2_0="http://service.dtechtalkcenter.com/servicev2.0"
xmlns:v2_1="http://service.dtechtalkcenter.com/servicev2.1">
<wsdl:types>
<xsd:schema elementFormDefault="unqualified" targetNamespace="http://service.dtechtalkcenter.com/servicev2.0">
<xsd:element name="addProduct" type="v2_0:addProduct"/>
<xsd:element name="addProductResponse" type="v2_0:addProductResponse"/>
<xsd:element name="getProducts" type="v2_0:getProducts"/>
<xsd:element name="getProductsResponse" type="v2_0:getProductsResponse"/>
<xsd:complexType name="getProducts">
<xsd:sequence/>
</xsd:complexType>
<xsd:complexType name="getProductsResponse">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="return" type="v2_0:product"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="product">
<xsd:sequence>
<xsd:element name="cast" type="xsd:double"/>
<xsd:element minOccurs="0" name="productCategory" type="xsd:string"/>
<xsd:element minOccurs="0" name="productDetails" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="addProduct">
<xsd:sequence>
<xsd:element minOccurs="0" name="product" type="v2_0:product"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="addProductResponse">
<xsd:sequence/>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="addProductResponse">
<wsdl:part name="parameters" element="v2_0:addProductResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getProducts">
<wsdl:part name="parameters" element="v2_0:getProducts">
</wsdl:part>
</wsdl:message>
<wsdl:message name="addProduct">
<wsdl:part name="parameters" element="v2_0:addProduct">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getProductsResponse">
<wsdl:part name="parameters" element="v2_0:getProductsResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="ProductService_v2_0">
<wsdl:operation name="getProducts">
<wsdl:input name="getProducts" message="tns:getProducts">
</wsdl:input>
<wsdl:output name="getProductsResponse" message="tns:getProductsResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="addProduct">
<wsdl:input name="addProduct" message="tns:addProduct">
</wsdl:input>
<wsdl:output name="addProductResponse" message="tns:addProductResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ProductServiceImplService_v2_0_SoapBinding" type="tns:ProductService_v2_0">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getProducts">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getProducts">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getProductsResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="addProduct">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="addProduct">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addProductResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProductServiceImplService_v2_0">
<wsdl:port name="ProductServiceImplPort" binding="tns:ProductServiceImplService_v2_0_SoapBinding">
<soap:address location="http://localhost:8088/VersionService/services/ProductServiceImplPort"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>