My suggestion is to do a System.out.pritnln(_any.getClass().getName())
to see what the real class is for the object and then go from there.  It's 
likely one of:

some subclass of org.w3c.dom.Element
or
JAXBElement  (grab the object/value out of it)
or
SubjectsDS


Dan



On Wednesday 13 October 2010 4:28:03 pm Jeffrey Rodgers wrote:
> I have one @XmlSeeAlso in the SrvSoap SEI, the block as follows:
> 
> @WebService(targetNamespace = "http://foo/moo/";, name = "SrvSoap")
> @XmlSeeAlso({ObjectFactory.class})
> public interface SrvSoap {
>     @WebResult(name = "GetLatestSubjectsDSResult", targetNamespace = "
> http://foo/moo/";)
>     @RequestWrapper(localName = "GetLatestSubjectsDS", targetNamespace = "
> http://foo/moo/";, className = "com.srv.GetLatestSubjectsDS")
>     @WebMethod(operationName = "GetLatestSubjectsDS", action = "
> http://foo/moo/GetLatestSubjectsDS";)
>     @ResponseWrapper(localName = "GetLatestSubjectsDSResponse",
> targetNamespace = "http://foo/moo/";, className =
> "com.srv.GetLatestSubjectsDSResponse")
>     public com.srv.GetLatestSubjectsDSResponse.GetLatestSubjectsDSResult
> getLatestSubjectsDS(
>         @WebParam(name = "numSubjects", targetNamespace =
> "http://foo/moo/";) int numSubjects,
>         @WebParam(name = "lastId", targetNamespace = "http://foo/moo/";)
>         int lastId
>     );
> 
> The JAXB unmarshaller was the first place I went to earlier, but since _any
> is an Object and doesn't want to accept an obvious cast from me, I have not
> been able to properly pass it to unmarshall method (maybe I am missing
> something very obvious with accessing the innards of that any property).
> 
> Thanks,
> Jeff
> 
> On Wed, Oct 13, 2010 at 4:08 PM, Daniel Kulp <[email protected]> wrote:
> > If CXF generated the code for that schema, there should also be an
> > @XmlSeeAlso
> > annotation on the SEI that points to the OjbectFactory for that schema.
> > That SHOULD make it more or less just work.   Can you check to see if the
> > XmlSeeAlso is there?
> > 
> > If it IS a DOM, you can always do something along the lines of:
> > 
> > 
> > JAXBContext.newContext(SubjectsDS.class).createUnmarshaller().unmarshall(
> > dom, SubjectsDS.class);
> > 
> > 
> > 
> > Dan
> > 
> > On Wednesday 13 October 2010 4:02:56 pm Jeffrey Rodgers wrote:
> > > Benson,
> > > 
> > > Thanks for the help and back/forth-
> > > 
> > > I'm pretty sure CXF does know the schema though, no?  Part of the WSDL
> > 
> > has
> > 
> > > a schema import for that particular s:any namespace in the form of:
> > >       <s:import namespace="http://tempuri.org/SubjectsDS.xsd"/>
> > >       <s:import schemaLocation="
> > > 
> > > http://localhost:9999/Srv.asmx?schema=SubjectsDS"; namespace="
> > > http://tempuri.org/SubjectsDS.xsd"/>
> > > 
> > > The schema for that particular object is gigantic, since the owners of
> > 
> > that
> > 
> > > web service decided to put everything into a single table back on the
> > > DS. It's essentially dozens of ints, strings, a couple timestamps, and
> > > some binary data.  CXF's wsdl2java code generation did in fact
> > > generate a
> > 
> > fully
> > 
> > > featured SubjectsDS to at least contain the schema (equally bloated but
> > 
> > it
> > 
> > > is what it is) too.
> > > 
> > > I guess at the most basic level, what's the preferred way to actually
> > > access the XML inside that any?  I can likely make the translation and
> > > mapping myself, but I can't seem to bust into that abstract object.
> > > 
> > > Jeff
> > > 
> > > On Wed, Oct 13, 2010 at 3:52 PM, Benson Margulies
> > 
> > <[email protected]>wrote:
> > > > The 'any' means that Microsoft knows the structure of this data but
> > > > isn't telling us. Since it isn't telling us, we can't do anything
> > > > about it. You could ask them what's up with the 'any':-)
> > > > 
> > > > If you could come up with your own XML schema for what shows up in
> > > > there, I could offer some suggestions for how to use it.
> > > > 
> > > > On Wed, Oct 13, 2010 at 3:50 PM, Jeffrey Rodgers
> > > > <[email protected]>
> > > > 
> > > > wrote:
> > > > > Benson,
> > > > > 
> > > > > Yes, that was my suspicion - the xs:any is in fact part of the
> > > > > WSDL.
> >  
> >  I
> >  
> > > > > can't seem to crack the nut on how to use that any property or the
> > > > > getAny accessor to unmarshall back to the generated java equivalent
> > 
> > of
> > 
> > > > > my .NET
> > > > 
> > > > DS
> > > > 
> > > > > (essentially a couple pages of public properties in
> > > > > SubjectsDS.java)
> > > > > 
> > > > > The WSDL for that particular section:
> > > > >      <s:element name="GetLatestSubjectsDSResponse">
> > > > >      
> > > > >        <s:complexType>
> > > > >        
> > > > >          <s:sequence>
> > > > >          
> > > > >            <s:element minOccurs="0" maxOccurs="1"
> > > > > 
> > > > > name="GetLatestSubjectsDSResult">
> > > > > 
> > > > >              <s:complexType>
> > > > >              
> > > > >                <s:sequence>
> > > > >                
> > > > >                  <s:any
> > > > >                  namespace="http://tempuri.org/SubjectsDS.xsd
> > 
> > "/>
> > 
> > > > >                </s:sequence>
> > > > >              
> > > > >              </s:complexType>
> > > > >            
> > > > >            </s:element>
> > > > >          
> > > > >          </s:sequence>
> > > > >        
> > > > >        </s:complexType>
> > > > >      
> > > > >      </s:element>
> > > > > 
> > > > > Thanks,
> > > > > Jeffrey
> > > > > 
> > > > > On Wed, Oct 13, 2010 at 3:41 PM, Benson Margulies
> > > > > <[email protected]
> > > > >
> > > > >wrote:
> > > > >> Jefferson,
> > > > >> 
> > > > >> It sounds as if the XML Schema in the WSDL uses an xs:any
> > > > >> particle, and that .NET has magic ways of turning this into a DS.
> > > > >> 
> > > > >> All CXF can do with an 'any', by default, is give you the XML DOM
> > 
> > for
> > 
> > > > >> whatever arrives.
> > > > >> 
> > > > >> In the data bindings, you can add custom handling, or you can work
> > > > >> with the DOM object.
> > > > >> 
> > > > >> Please have a look at the schema and see if I'm right about the
> > 
> > 'any'.
> > 
> > > > >> --benson
> > > > >> 
> > > > >> 
> > > > >> On Wed, Oct 13, 2010 at 2:29 PM, Jeffrey Rodgers <
> > 
> > [email protected]>
> > 
> > > > >> wrote:
> > > > >> > Hello,
> > > > >> > 
> > > > >> > I've used the wsdl2java application to generate the following
> > > > >> > classes
> > > > 
> > > > for
> > > > 
> > > > >> my
> > > > >> 
> > > > >> > particular WSDL:
> > > > >> > 
> > > > >> > GetLatestSubjectsDS.java
> > > > >> > GetLatestSubjectsDSResponse.java
> > > > >> > Init.java
> > > > >> > InitResponse.java
> > > > >> > ObjectFactory.java
> > > > >> > package-info.java
> > > > >> > SaveSubject.java
> > > > >> > SaveSubjectResponse.java
> > > > >> > SrvSoap.java
> > > > >> > Srv.java
> > > > >> > SrvSoap_SrvSoap_Client.java
> > > > >> > SrvSoap_SrvSoap12_Client.java
> > > > >> > SubjectsDS.java
> > > > >> > 
> > > > >> > Which I then pulled into Eclipse for usage.  The most basic
> > > > >> > basic web service calls are working as expected, but I am
> > > > >> > having difficulties
> > > > 
> > > > using
> > > > 
> > > > >> > our GetLatestSubjects web service call which should a set of
> > > > 
> > > > "Subjects"
> > > > 
> > > > >> data
> > > > >> 
> > > > >> > to the client, in which I would ideally unmarshalling into a
> > > > 
> > > > SubjectsDS
> > > > 
> > > > >> > object.  We treat this as a dataset in .NET but I understand
> > > > >> > that
> > > > 
> > > > won't
> > > > 
> > > > >> be
> > > > >> 
> > > > >> > happening here.  Within SubjectsDS is a multitude of properties
> > > > >> > (more
> > > > >> 
> > > > >> than a
> > > > >> 
> > > > >> > dozen).
> > > > >> > 
> > > > >> > As far as I can tell, the only accessors that I can play with in
> > 
> > the
> > 
> > > > >> > GetLatestSubjectsDSResponse is an "any" property which looks
> > > > >> > like
> > 
> > a
> > 
> > > > >> > DOM-esque object in the debugger (as expected given the web
> > > > >> > service's origin).  I'm unsure what to do with this from here,
> > > > >> > but more
> > > > 
> > > > importantly
> > > > 
> > > > >> > may fear that I'm going about this in a wrong way given my
> > > > 
> > > > inexperience
> > > > 
> > > > >> with
> > > > >> 
> > > > >> > CXF.
> > > > >> > 
> > > > >> > Thanks in advance,
> > > > >> > Jefferson
> > 
> > --
> > Daniel Kulp
> > [email protected]
> > http://dankulp.com/blog

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to