All, As a follow up, i was able to get the Apache Axis2 maven plugin to accept WSDL 2.0. Below is what i had to add to my pom.xml. Attached is an example that will get you an Http binding that should work "RESTfully".
Best wishes, --greg <pluginRepositories> ... <pluginRepository> <id>plugin.axis2.apache.org</id> <name>Apache Axis2 Repository</name> <url>http://apache.sunsite.ualberta.ca/ws/axis2/tools/1_4_1</url> </pluginRepository> </pluginRepositories> <plugins> ... <plugin> <groupId>org.apache.axis2</groupId> <artifactId>axis2-wsdl2code-maven-plugin</artifactId> <version>1.4.1</version> <executions> <execution> <goals> <goal>wsdl2code</goal> </goals> </execution> </executions> <configuration> <packageName>${groupId}.${artifactId}.model</packageName> <wsdlVersion>2.0</wsdlVersion> <generateAllClasses>true</generateAllClasses> <generateServerSide>true</generateServerSide> <generateServerSideInterface>true</generateServerSideInterface> <generateServicesXml>true</generateServicesXml> <generateTestCase>true</generateTestCase> </configuration> </plugin> </plugins> 2009/8/11 Meredith Gregory <lgreg.mered...@gmail.com> > Marius, > > The original design goals of WSDL were very straightforward: > > - a Port Type is a set of Message Types governing all the messages > arriving on the Port > - A Message Type is given precisely by an XML Schema (e.g. an XSD) > - A Port is instanced by binding a Port Type to an Endpoint (URL) > supporting a transport protocol > > In symbols, WSDL was intended to be able to make statements of the form > > - URL+Transport : { XMLSchema1, ..., XMLSchemaN } > - Notice the close correlation between this and the statement you see > on the Scala REPL all the time: > - ScalaExpr <ret> > - res1 : ScalaType > > URL is the location of the resource/instance in the same way that res1 > provides a location that the Scala REPL can use to look up the instance. > PortType is very much like a ScalaType. In the case of typing at the Scala > REPL from a command shell there is no question of transport and any > encoding/decoding necessary. However, if one had a more remote network > access to the Scala REPL that did involve some issues around transport and > encoding/decoding, then these two cases would be isomorphic. > > BTW, this lines up nearly perfectly with the idea of sorts and sorting in > Milner's π-calculus. > > Because message exchange usually involves parameter-passing & because of > confusion about the role of "Object Technology" in all this, WSDL was > extended with the notion of Operation. This could have been done more > cleanly, but was not. Not everyone involved in WSDL's design had the same > picture in their minds of what they were attempting to accomplish. > > As for what happens today, i could easily imaging WSDL and/or WSDL+SOAP > over RabbitMQ, for example. i think something like this is considerably > better than JSON over transport. The basic reason for this is > straightforward. XMLSchema are a form of typing discipline. So, you get a > typing discipline for messaging-style applications that fits well with the > typing discipline of a language like Scala. > > This could, for example, play out very nicely in an actor framework. An > actor's mailbox is a good thing to locate at an URL. Then you have > statements of the form > > - URL + Transport/Actor : { MessageType1, ..., MessageTypeN } > > Today, Scala actors do not even support statements of this basic form, > though they would greatly enhance the actor package. > > Beyond this, you can imagine putting constraints on the order of messages. > Here's a general scheme > > - Actor : ( { MsgType1 -> Type1, ..., MsgTypeN -> TypeN }, > RegularExpressionOver(MsgType1,...,MsgTypeN) ) > - The first element in the pair just maps message type names to Scala > types (or the types of some host language) and the second element in the > pair says the order you expect to see messages in the mailbox. > - Here's an example: ( { Init -> OpenSession( id, pwd ), Read -> > ReadDb( ... ), Update -> UpdateDB( ... ), Finish -> CloseSession( ... ) }, > Init.(Read+Update)*.Finish ) > - It says that the only legal sequences of messages in the mbox are > of the form Init :: Read-or-Update :: ... :: Read-or-Update :: FInish. > > > Best wishes, > > --greg > > > On Tue, Aug 11, 2009 at 9:27 AM, marius d. <marius.dan...@gmail.com>wrote: > >> >> >> >> On Aug 11, 7:09 pm, Meredith Gregory <lgreg.mered...@gmail.com> wrote: >> > Tim, >> > >> > i was under the same impression, but then read a couple of IBM >> comparison >> > articles and a WSO2 blog and it seemed that the WSDL 2.0 was gaining >> ground. >> > Further, the tooling for WSDL, with integration into all the major >> IDE's, >> > has been significantly more developed than the WADL tooling. However, >> > yesterday i tried a simple example with a schema-valid WSDL 2.0 xml >> document >> > for a simple service with 1 operation and the Apache Axis2 tool barfed >> on >> > the fact that the schema pointed to in the document was for WSDL 2.0 and >> not >> > WSDL 1.1 -- despite the fact that they claim on their home page to >> support >> > WSDL 2.0. >> > >> > For the record, WSDL -- as much as i hate it -- was not meant to be tied >> to >> > a transport. As a matter of fact, neither was SOAP. You should be able >> to >> > effect these over any transport, HTTP included, and presumably in more >> than >> > one way. WADL is tied to HTTP. This means its scope is considerably more >> > limited. >> >> Very true. But then again in reality how often are we seeing WSDL/SOAP >> bound to something else then HTTP? ... in some respects this seems a >> false selling point of SOAP. >> >> Assuming an enterprise application where let's say we can escape HTTP >> realm, probably RMI/IIOP, JINI, JXTA etc. even proprietary on the wire >> representation etc.becomes valid choices. >> >> > >> > Best wishes, >> > >> > --greg >> > >> > On Tue, Aug 11, 2009 at 12:55 AM, Timothy Perrett >> > <timo...@getintheloop.eu>wrote: >> > >> > >> > >> > >> > >> > > Hey Greg, >> > >> > > Im not sure about WSDL2.0, but my understanding was that WADL >> > > (https://wadl.dev.java.net/) was making the most ground in the REST >> > > service description arena. >> > >> > > Cheers, Tim >> > >> > > On Aug 10, 10:58 pm, Meredith Gregory <lgreg.mered...@gmail.com> >> > > wrote: >> > > > Lifted RESTafarians, >> > >> > > > Has anyone tried the Apache Axis 2 WSDL 2.0 support? i'm looking at >> this >> > > > page< >> > >http://ws.apache.org/axis2/tools/1_2/maven-plugins/maven-wsdl2code-pl >> .. >> > > .>and >> > > > it claims they have a maven plugin to generate the stubs for a WSDL >> > > > 2.0 >> > > > REST binding. i'm going to play around with it to wrap BNF Converter >> in a >> > > > RESTful service; but, i was wondering if anyone else had experience >> with >> > > it. >> > >> > > > Best wishes, >> > >> > > > --greg >> > >> > > > On Fri, Aug 7, 2009 at 12:31 AM, Viktor Klang < >> viktor.kl...@gmail.com >> > > >wrote: >> > >> > > > > Hello Jacek, >> > >> > > > > actually, if I were you I'd consider implementing your webservices >> as >> > > REST >> > > > > services and then just have your SOAP stubs call your rest >> services. >> > > (If >> > > > > you're not using anything voodooesque) >> > >> > > > > Then you have the benefit of using the existing plumbing as much >> as >> > > > > possible, while still maintaining your SOAP interface as well as a >> > > potential >> > > > > migration path to something non-WSDL. >> > >> > > > > (I am severely biased by having to work with SOAP, which has >> scarred me >> > > for >> > > > > life) >> > >> > > > > On Thu, Aug 6, 2009 at 5:26 PM, Jacek Furmankiewicz < >> jace...@gmail.com >> > > >wrote: >> > >> > > > >> I was reading through the Lift book PDF and it mentions only >> REST- >> > > > >> style web services. >> > >> > > > >> In our case, we need to look at re-implementing a set of existing >> SOAP >> > > > >> web services (is there anything like 'wsdl2scala' anywhere?). >> > >> > > > >> I would appreciate any best practices and suggestions for >> implementing >> > > > >> SOAP web services in the context of a larger Lift app (and Scala >> in >> > > > >> general). >> > >> > > > > -- >> > > > > Viktor Klang >> > >> > > > > Rogue Scala-head >> > >> > > > > Blog: klangism.blogspot.com >> > > > > Twttr: viktorklang >> > >> > > > -- >> > > > L.G. Meredith >> > > > Managing Partner >> > > > Biosimilarity LLC >> > > > 1219 NW 83rd St >> > > > Seattle, WA 98117 >> > >> > > > +1 206.650.3740 >> > >> > > >http://biosimilarity.blogspot.com >> > >> > -- >> > L.G. Meredith >> > Managing Partner >> > Biosimilarity LLC >> > 1219 NW 83rd St >> > Seattle, WA 98117 >> > >> > +1 206.650.3740 >> > >> > http://biosimilarity.blogspot.com >> >> >> > > > -- > L.G. Meredith > Managing Partner > Biosimilarity LLC > 1219 NW 83rd St > Seattle, WA 98117 > > +1 206.650.3740 > > http://biosimilarity.blogspot.com > -- L.G. Meredith Managing Partner Biosimilarity LLC 1219 NW 83rd St Seattle, WA 98117 +1 206.650.3740 http://biosimilarity.blogspot.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---
<?xml version="1.0" encoding="UTF-8"?> <!-- xmlns:wsdl2="http://schemas.xmlsoap.org/wsdl" --> <wsdl2:description xmlns="http://www.w3.org/ns/wsdl" xmlns:tns="http://www.biosimilarity.com/BNFService" xmlns:wsdl2="http://www.w3.org/ns/wsdl" xmlns:wrpc="http://www.w3.org/ns/wsdl/rpc" xmlns:whttp="http://www.w3.org/ns/wsdl/http" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdlx="http://www.w3.org/ns/wsdl-extensions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:axis2="http://www.biosimilarity.com/BNFService" targetNamespace="http://www.biosimilarity.com/BNFService"> <wsdl2:types> <!-- targetNamespace="http://www.biosimilarity.com/BNFService?xsd" --> <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.biosimilarity.com/BNFService"> <xs:complexType name="addNewBNFResourceType"> <xs:sequence> <xs:element name="id" type="xs:string" /> <xs:element name="name" type="xs:string" /> <xs:element name="src" type="xs:string" /> <xs:element name="url" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:element name="addNewBNFResource" type="tns:addNewBNFResourceType" /> <xs:complexType name="addNewBNFResourceResponseType"> <xs:sequence> <xs:element name="return" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:element name="addNewBNFResourceResponse" type="tns:addNewBNFResourceResponseType" /> </xs:schema> </wsdl2:types> <wsdl2:interface name="ManageBNFResources"> <wsdl2:operation name="addNewBNFResource" style="http://www.w3.org/ns/wsdl/style/rpc http://www.w3.org/ns/wsdl/style/multipart" wrpc:signature="id #in name #in src #in url #in return #return " pattern="http://www.w3.org/ns/wsdl/in-out"> <wsdl2:documentation><div>Add a new customer into the system</div></wsdl2:documentation> <wsdl2:input element="tns:addNewBNFResource" wsaw:Action="http://www.biosimilarity.com/BNFService/ServiceInterface/addNewBNFResourceRequest" /> <wsdl2:output element="tns:addNewBNFResourceResponse" wsaw:Action="http://www.biosimilarity.com/BNFService/ServiceInterface/addNewBNFResourceResponse" /> </wsdl2:operation> <!-- operation name="getBNFResource"></operation --> <!-- operation name="getParser"></operation --> <!-- operation name="getBNFResources"></operation --> </wsdl2:interface> <wsdl2:binding name="BNFService-HttpBinding" interface="tns:ManageBNFResources" type="http://www.w3.org/ns/wsdl/http"> <wsdl2:operation ref="tns:addNewBNFResource" whttp:method="POST" whttp:location="BNFResources" /> </wsdl2:binding> <wsdl2:service name="BNFService" interface="tns:ManageBNFResources"> <wsdl2:endpoint name="SecureHTTPEndpoint" binding="tns:BNFService-HttpBinding" address="https://biosimilarity.com/services/bnfsrv/BNFService.SecureHTTPEndpoint/"/> <wsdl2:endpoint name="HTTPEndpoint" binding="tns:BNFService-HttpBinding" address="https://biosimilarity.com/services/bnfsrv/BNFService.HTTPEndpoint/"/> </wsdl2:service> </wsdl2:description>