| At line 4 changed 1 line. |
| This tutorial will show you how to create a Webservice Endpoint and what you can do to automate the creation of artifacts necessary to provide Webservices to others. |
| This tutorial will show you how to create a Webservice Endpoint and what you can do to automate the creation of artifacts necessary to provide Webservices to others. Note that in 1.9.1, an [XFire|http://xfire.codehaus.org] installer exists in the ''extras'' directory. Using XFire is the recommended tool for creating web services in an AppFuse application. See the [AppFuse + XFire|AppFuseXFire] tutorial for more information about this installer. |
| At line 16 changed 1 line. |
| !!Download the prerequistie packages [#0] |
| !!Preface [#0] |
| At line 19 changed 1 line. |
| There's work in progress to automate the process of plugging in Axis into AppFuse (via an extras package), so stay tuned. |
| There's work in progress to automate the process of plugging in Axis into AppFuse (via an extras package), you'll find the first shot version attached to this page as [zip|http://raibledesigns.com/wiki/attach/AppFuseAxis/extras-axis.zip]. |
| At line 21 added 6 lines. |
| All that's described on this page is performed by an ant-task in this package. Expand it in the extras folder of your project, go into the folder axis-webservice with a shell and do an |
| {{{ |
| ant install |
| }}} |
| there. It will install the necessary files and do the changes described below. |
|
| At line 75 changed 1 line. |
| Additinally we need to put the axis.classpath into the compile-service target (just below <path id="service.compile.classpath">): |
| Additinally we need to put the axis.classpath into the compile-service target (just below <path id="service.compile.classpath">): |
| At line 81 changed 1 line. |
| We know need to make webdoclet generate the appropriate entries for the AxisServlet in web.xml. |
| We now need to make webdoclet generate the appropriate entries for the AxisServlet in web.xml. |
| At line 138 changed 1 line. |
| <XDtClass:ifHasClassTag tagName="axisfuse.beanMapping" paramName="xmlns"><beanMapping <XDtClass:ifHasClassTag tagName="axisfuse.beanMapping" paramName="xmlns">qname="ns:<XDtClass:className/>"</XDtClass:ifHasClassTag> <XDtClass:ifHasClassTag tagName="axisfuse.beanMapping" paramName="xmlns">xmlns:ns="<XDtClass:classTagValue tagName="axisfuse.beanMapping" paramName="xmlns"/>"</XDtClass:ifHasClassTag> languageSpecificType="java:<XDtClass:fullClassName/>"/></XDtClass:ifHasClassTag></XDtClass:forAllClasses> |
| <XDtClass:ifHasClassTag tagName="axisfuse.beanMapping" paramName="xmlns"> |
| <beanMapping <XDtClass:ifHasClassTag tagName="axisfuse.beanMapping" paramName="xmlns">qname="ns:<XDtClass:className/>"</XDtClass:ifHasClassTag> |
| <XDtClass:ifHasClassTag tagName="axisfuse.beanMapping" paramName="xmlns">xmlns:ns="<XDtClass:classTagValue tagName="axisfuse.beanMapping" |
| paramName="xmlns"/>"</XDtClass:ifHasClassTag> languageSpecificType="java:<XDtClass:fullClassName/>"/></XDtClass:ifHasClassTag></XDtClass:forAllClasses> |
| At line 162 changed 1 line. |
| <parameter name="<XDtClass:classTagValue tagName="axisfuse.parameter" paramName="name"/>" value="<XDtClass:classTagValue tagName="axisfuse.parameter" paramName="value"/>" /> |
| <parameter name="<XDtClass:classTagValue tagName="axisfuse.parameter" paramName="name"/>" value="<XDtClass:classTagValue |
| tagName="axisfuse.parameter" paramName="value"/>" /> |
| At line 170 changed 1 line. |
| <service name="<XDtClass:classTagValue tagName="axisfuse.service" paramName="name"/>" <XDtClass:ifHasClassTag tagName="axisfuse.service" paramName="provider">provider="<XDtClass:classTagValue tagName="axisfuse.service" paramName="provider" values="java:RPC,java:MSG,java:EJB" default="java:RPC"/>"</XDtClass:ifHasClassTag><XDtClass:ifDoesntHaveClassTag tagName="axisfuse.service" paramName="provider">provider="java:RPC"</XDtClass:ifDoesntHaveClassTag> <XDtClass:ifHasClassTag tagName="axisfuse.service" paramName="style">style="<XDtClass:classTagValue tagName="axisfuse.service" paramName="style" values="rpc,document,wrapped,message"/>"</XDtClass:ifHasClassTag> <XDtClass:ifHasClassTag tagName="axisfuse.service" paramName="use">use="<XDtClass:classTagValue tagName="axisfuse.service" paramName="use" values="literal,encoded"/>"</XDtClass:ifHasClassTag>> |
| <service name="<XDtClass:classTagValue tagName="axisfuse.service" paramName="name"/>" <XDtClass:ifHasClassTag tagName="axisfuse.service" |
| paramName="provider">provider="<XDtClass:classTagValue tagName="axisfuse.service" paramName="provider" values="java:RPC,java:MSG,java:EJB" |
| default="java:RPC"/>"</XDtClass:ifHasClassTag><XDtClass:ifDoesntHaveClassTag tagName="axisfuse.service" |
| paramName="provider">provider="java:RPC"</XDtClass:ifDoesntHaveClassTag> <XDtClass:ifHasClassTag tagName="axisfuse.service" |
| paramName="style">style="<XDtClass:classTagValue tagName="axisfuse.service" |
| paramName="style" values="rpc,document,wrapped,message"/>"</XDtClass:ifHasClassTag> |
| <XDtClass:ifHasClassTag tagName="axisfuse.service" paramName="use">use="<XDtClass:classTagValue tagName="axisfuse.service" |
| paramName="use" values="literal,encoded"/>"</XDtClass:ifHasClassTag>> |
| At line 185 changed 2 lines. |
| <parameter name="allowedMethods" <XDtClass:ifDoesntHaveClassTag tagName="axisfuse.service" paramName="include-all">value="<XDtMethod:forAllMethods><XDtMethod:ifHasMethodTag tagName="axisfuse.method"><XDtMethod:methodName/> </XDtMethod:ifHasMethodTag></XDtMethod:forAllMethods>"</XDtClass:ifDoesntHaveClassTag> <XDtClass:ifHasClassTag tagName="axisfuse.service" paramName="include-all">value="*"</XDtClass:ifHasClassTag>/> |
| <parameter name="scope" value="<XDtClass:classTagValue tagName='axisfuse.service' paramName='scope' value='request,session,application' default='request'/>"/> |
| <parameter name="allowedMethods" <XDtClass:ifDoesntHaveClassTag tagName="axisfuse.service" |
| paramName="include-all">value="<XDtMethod:forAllMethods><XDtMethod:ifHasMethodTag tagName="axisfuse.method"><XDtMethod:methodName/> |
| </XDtMethod:ifHasMethodTag></XDtMethod:forAllMethods>"</XDtClass:ifDoesntHaveClassTag> |
| <XDtClass:ifHasClassTag tagName="axisfuse.service" paramName="include-all">value="*"</XDtClass:ifHasClassTag>/> |
| <parameter name="scope" value="<XDtClass:classTagValue tagName='axisfuse.service' paramName='scope' value='request,session,application' |
| default='request'/>"/> |
| At line 299 changed 1 line. |
| return users == null ? null : (User [])users.toArray(); |
| return users == null ? null : users.toArray(new User[users.size()]); |
| At line 321 changed 1 line. |
| deploy your app and have a look under http://your.server/project/services it should look like |
| deploy your app and have a look under http://your.server/your.project/services it should look like |
| At line 344 added 7 lines. |
| And now... Some Services |
|
| * UserService (wsdl) |
| o getUsers |
| o removeUser |
| o getUser |
| o saveUser |