You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Benson Margulies <bi...@gmail.com> on 2009/09/24 17:16:09 UTC
Re: Aegis databinding -- Duplicate C# proxy classes generated for
Java classes
to help you with this, I have to ask you to provide two XSD fragments: Aegis
and Other.
On Thu, Sep 24, 2009 at 10:44 AM, skuramshin
<se...@archibus.com>wrote:
>
> Hi All. My question is about integration between CXF-based Java web service
> and a C# .NET client.
>
> Service: CXF 2.2.3 with Aegis databinding
> Client: C#, .NET 3.5 SP1
>
> For some reason Visual Studio generates two C# proxy enums for each Java
> enum. The generated C# classes do not compile. I'm using "Java first"
> approach, so the WSDL is generated by CXF.
>
> For example, this Java enum:
>
> public enum SqlDialect {
> GENERIC, SYBASE, SQL_SERVER, ORACLE;
> }
>
> Produces this WSDL:
>
> <xsd:simpleType name="SqlDialect">
> <xsd:restriction base="xsd:string">
> <xsd:enumeration value="GENERIC" />
> <xsd:enumeration value="SYBASE" />
> <xsd:enumeration value="SQL_SERVER" />
> <xsd:enumeration value="ORACLE" />
> </xsd:restriction>
> </xsd:simpleType>
>
> For this WSDL Visual Studio generates two partial C# classes (generated
> comments removed):
>
>
>
> [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization",
> "3.0.0.0")]
> [System.Runtime.Serialization.DataContractAttribute(Name="SqlDialect",
> Namespace="http://datasource.view.model.archibus.com")]
> public enum SqlDialect : int {
>
> [System.Runtime.Serialization.EnumMemberAttribute()]
> GENERIC = 0,
>
> [System.Runtime.Serialization.EnumMemberAttribute()]
> SYBASE = 1,
>
> [System.Runtime.Serialization.EnumMemberAttribute()]
> SQL_SERVER = 2,
>
> [System.Runtime.Serialization.EnumMemberAttribute()]
> ORACLE = 3,
> }
> ...
> [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml",
> "2.0.50727.3082")]
> [System.SerializableAttribute()]
>
> [System.Xml.Serialization.XmlTypeAttribute(Namespace="
> http://datasource.view.model.archibus.com")]
> public enum SqlDialect {
> GENERIC,
> SYBASE,
> SQL_SERVER,
> ORACLE,
> }
>
> The resulting C# code does not compile:
>
> The namespace 'xxx' already contains a definition for 'SqlDialect'
>
> This issue does not happen when the default CXF databinding is used instead
> of Aegis. In that case, only the second C# enum is generated.
>
> I will appreciate any ideas...
> --
> View this message in context:
> http://www.nabble.com/Aegis-databinding----Duplicate-C--proxy-classes-generated-for-Java-classes-tp25573591p25573591.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>
Re: Aegis databinding -- Duplicate C# proxy classes generated for
Java classes
Posted by skuramshin <se...@archibus.com>.
Will do. Thank you!
--
View this message in context: http://www.nabble.com/Aegis-databinding----Duplicate-C--proxy-classes-generated-for-Java-classes-tp25573591p25613411.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Aegis databinding -- Duplicate C# proxy classes generated for
Java classes
Posted by Benson Margulies <bi...@gmail.com>.
Ok, then, please open a JIRA and attach the full pair of WSDL files. I can't
promise anything, but I'll look.
On Fri, Sep 25, 2009 at 8:45 AM, skuramshin
<se...@archibus.com>wrote:
>
>
> bimargulies wrote:
> >
> > Your original message contained the XSD fragment from the enum, from
> > Aegis,
> > that confounded MS. I need to compare it to the corresponding fragment
> > from
> > JAXB that didn't.
> >
>
> I had this thought as well... the WSDL definition for the enum is exactly
> the same, with and without Aegis:
>
> <xsd:simpleType name="SqlDialect">
> <xsd:restriction base="xsd:string">
> <xsd:enumeration value="GENERIC" />
> <xsd:enumeration value="SYBASE" />
> <xsd:enumeration value="SQL_SERVER" />
> <xsd:enumeration value="ORACLE" />
> </xsd:restriction>
> </xsd:simpleType>
>
> --
> View this message in context:
> http://www.nabble.com/Aegis-databinding----Duplicate-C--proxy-classes-generated-for-Java-classes-tp25573591p25611511.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>
Re: Aegis databinding -- Duplicate C# proxy classes generated for
Java classes
Posted by skuramshin <se...@archibus.com>.
bimargulies wrote:
>
> Your original message contained the XSD fragment from the enum, from
> Aegis,
> that confounded MS. I need to compare it to the corresponding fragment
> from
> JAXB that didn't.
>
I had this thought as well... the WSDL definition for the enum is exactly
the same, with and without Aegis:
<xsd:simpleType name="SqlDialect">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="GENERIC" />
<xsd:enumeration value="SYBASE" />
<xsd:enumeration value="SQL_SERVER" />
<xsd:enumeration value="ORACLE" />
</xsd:restriction>
</xsd:simpleType>
--
View this message in context: http://www.nabble.com/Aegis-databinding----Duplicate-C--proxy-classes-generated-for-Java-classes-tp25573591p25611511.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Aegis databinding -- Duplicate C# proxy classes generated for
Java classes
Posted by Benson Margulies <bi...@gmail.com>.
Your original message contained the XSD fragment from the enum, from Aegis,
that confounded MS. I need to compare it to the corresponding fragment from
JAXB that didn't.
On Fri, Sep 25, 2009 at 7:37 AM, skuramshin
<se...@archibus.com>wrote:
>
> Thank you for responding!
>
>
> bimargulies wrote:
> >
> > to help you with this, I have to ask you to provide two XSD fragments:
> > Aegis
> > and Other.
> >
>
> I'm not using any custom XSD schemas at all...
>
> The service is defined in the Spring configuration. With Aegis databinding:
>
> <jaxws:endpoint id="testService-ws"
> implementor="#testService-remote" address="/testService">
> <jaxws:dataBinding>
> <ref bean="aegisTestDataBinding" />
> </jaxws:dataBinding>
> </jaxws:endpoint>
>
> <bean id="aegisTestDataBinding"
> class="org.apache.cxf.aegis.databinding.AegisDatabinding"
> scope="prototype">
> </bean>
>
> Without Aegis:
>
> <jaxws:endpoint id="testService-ws"
> implementor="#testService-remote" address="/testService">
> </jaxws:endpoint>
>
> --
> View this message in context:
> http://www.nabble.com/Aegis-databinding----Duplicate-C--proxy-classes-generated-for-Java-classes-tp25573591p25610518.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>
Re: Aegis databinding -- Duplicate C# proxy classes generated for
Java classes
Posted by skuramshin <se...@archibus.com>.
Thank you for responding!
bimargulies wrote:
>
> to help you with this, I have to ask you to provide two XSD fragments:
> Aegis
> and Other.
>
I'm not using any custom XSD schemas at all...
The service is defined in the Spring configuration. With Aegis databinding:
<jaxws:endpoint id="testService-ws"
implementor="#testService-remote" address="/testService">
<jaxws:dataBinding>
<ref bean="aegisTestDataBinding" />
</jaxws:dataBinding>
</jaxws:endpoint>
<bean id="aegisTestDataBinding"
class="org.apache.cxf.aegis.databinding.AegisDatabinding"
scope="prototype">
</bean>
Without Aegis:
<jaxws:endpoint id="testService-ws"
implementor="#testService-remote" address="/testService">
</jaxws:endpoint>
--
View this message in context: http://www.nabble.com/Aegis-databinding----Duplicate-C--proxy-classes-generated-for-Java-classes-tp25573591p25610518.html
Sent from the cxf-user mailing list archive at Nabble.com.