cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache CXF Documentation > XFire Migration Guide
Date Thu, 17 Jun 2010 17:42:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/CXF20DOC/XFire+Migration+Guide">XFire
Migration Guide</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~dkulp">Daniel
Kulp</a>
    </h4>
        <br/>
                         <h4>Changes (2)</h4>
                                 
    
<div id="page-diffs">
            <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >| WS-Addressing \\ | CXF has much
better [WS-Addressing] support and its easier to use as well. \\ | <br>| WS-Security
| [Ported|WS-Security]. | <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">|
XMLBeans | Not ported. Will be supported in CXF 2.1 | <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">|
XMLBeans | [Ported|XMLBeans] | <br></td></tr>
            <tr><td class="diff-unchanged" >For more details on how to migrate:
<br>* Are you using the ObjectServiceFactory, AnnotationServiceFactory, or JAXWSServiceFactory?
[Go-&gt;|XFire Migration Guide#Service Factories] <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
        </table>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <style type='text/css'>/*<![CDATA[*/
div.rbtoc1276796489753 {margin-left: 1.5em;padding: 0px;}
div.rbtoc1276796489753 ul {list-style: disc;margin-left: 0px;padding-left: 20px;}
div.rbtoc1276796489753 li {margin-left: 0px;padding-left: 0px;}

/*]]>*/</style><div class='rbtoc1276796489753'>
<ul>
    <li><a href='#XFireMigrationGuide-CompletedFunctionalityandCXFanalogues'>Completed
Functionality and CXF analogues</a></li>
    <li><a href='#XFireMigrationGuide-ShouldIMigrateYet%3F'>Should I Migrate Yet?</a></li>
<ul>
    <li><a href='#XFireMigrationGuide-Whoshouldnotmigrate'>Who should not migrate</a></li>
</ul>
    <li><a href='#XFireMigrationGuide-ServiceFactories'>Service Factories</a></li>
<ul>
    <li><a href='#XFireMigrationGuide-ExampleObjectServiceFactoryMigration'>Example
ObjectServiceFactory Migration</a></li>
    <li><a href='#XFireMigrationGuide-ExampleAnnotationServiceFactoryMigration'>Example
AnnotationServiceFactory Migration</a></li>
    <li><a href='#XFireMigrationGuide-ExampleJAXWSServiceFactoryMigration'>Example
JAXWSServiceFactory Migration</a></li>
</ul>
    <li><a href='#XFireMigrationGuide-HTTPandServletSetup'>HTTP and Servlet Setup</a></li>
    <li><a href='#XFireMigrationGuide-services.xml'>services.xml</a></li>
</ul></div>

<h1><a name="XFireMigrationGuide-CompletedFunctionalityandCXFanalogues"></a>Completed
Functionality and CXF analogues</h1>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> XFire Feature </th>
<th class='confluenceTh'> CXF Analogue </th>
</tr>
<tr>
<td class='confluenceTd'> Aegis Binding </td>
<td class='confluenceTd'> <a href="/confluence/display/CXF20DOC/Aegis+Databinding+%282.0.x%29"
title="Aegis Databinding (2.0.x)">Ported</a>. </td>
</tr>
<tr>
<td class='confluenceTd'> Configurable Servlet </td>
<td class='confluenceTd'> See the <a href="/confluence/display/CXF20DOC/Servlet+Transport"
title="Servlet Transport">Servlet Transport</a> page. </td>
</tr>
<tr>
<td class='confluenceTd'> Eclipse Plugin <br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> Eclipse tooling supported via the SOA Tools project. </td>
</tr>
<tr>
<td class='confluenceTd'> HTTP Transport </td>
<td class='confluenceTd'> <a href="/confluence/display/CXF20DOC/HTTP+Transport" title="HTTP
Transport">Ported</a>. </td>
</tr>
<tr>
<td class='confluenceTd'> JMS Transport </td>
<td class='confluenceTd'> <a href="/confluence/display/CXF20DOC/JMS+Transport" title="JMS
Transport">Ported</a>. </td>
</tr>
<tr>
<td class='confluenceTd'> JAX-WS/JSR-181 Annotation Support </td>
<td class='confluenceTd'> Ported and CXF passes the JAX-WS/JWS TCKs. </td>
</tr>
<tr>
<td class='confluenceTd'> JAXB </td>
<td class='confluenceTd'> Ported. </td>
</tr>
<tr>
<td class='confluenceTd'> MTOM <br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> <a href="/confluence/display/CXF20DOC/MTOM+Attachments+with+JAXB"
title="MTOM Attachments with JAXB">Ported</a> &#45; Supports fully streaming
attachments now. </td>
</tr>
<tr>
<td class='confluenceTd'> services.xml </td>
<td class='confluenceTd'> Spring 2 XML will be supported for easy configuration. See
the <a href="/confluence/display/CXF20DOC/Configuration" title="Configuration">Configuration</a>
section. </td>
</tr>
<tr>
<td class='confluenceTd'> Spring: XFireClientFactoryBean </td>
<td class='confluenceTd'> See the ClientProxyFactoryBean and JaxWsProxyFactoryBean.
</td>
</tr>
<tr>
<td class='confluenceTd'> Spring: XFireExporter </td>
<td class='confluenceTd'> Not ported as the &#42;ServerFactoryBeans already enable
this functionality. See below. </td>
</tr>
<tr>
<td class='confluenceTd'> Spring: ServiceBean </td>
<td class='confluenceTd'> Completed. See ServerFactoryBean and JaxWsServerFactoryBean.
</td>
</tr>
<tr>
<td class='confluenceTd'> WS-Addressing <br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> CXF has much better <a href="/confluence/display/CXF20DOC/WS-Addressing"
title="WS-Addressing">WS&#45;Addressing</a> support and its easier to use as
well. <br class="atl-forced-newline" /> </td>
</tr>
<tr>
<td class='confluenceTd'> WS-Security </td>
<td class='confluenceTd'> <a href="/confluence/display/CXF20DOC/WS-Security" title="WS-Security">Ported</a>.
</td>
</tr>
<tr>
<td class='confluenceTd'> XMLBeans </td>
<td class='confluenceTd'> <a href="/confluence/display/CXF20DOC/XMLBeans" title="XMLBeans">Ported</a>
</td>
</tr>
</tbody></table>
</div>

<p>For more details on how to migrate:</p>
<ul>
	<li>Are you using the ObjectServiceFactory, AnnotationServiceFactory, or JAXWSServiceFactory?
<a href="#XFireMigrationGuide-ServiceFactories">Go-&gt;</a></li>
	<li>Are you using services.xml? <a href="#XFireMigrationGuide-services.xml">Go-&gt;</a></li>
	<li>Are you using the XFireServlet? <a href="#XFireMigrationGuide-HTTPandServletSetup">Go-&gt;</a></li>
	<li>Are you using the Spring ServiceBean? <a href="#XFireMigrationGuide-ServiceBean">Go-&gt;</a></li>
	<li>Are you using the Spring XFireExporter? <a href="#XFireMigrationGuide-XFireExporter">Go-&gt;</a></li>
</ul>


<h1><a name="XFireMigrationGuide-ShouldIMigrateYet%3F"></a>Should I Migrate
Yet?</h1>

<p>XFire users should consider migrating to CXF. Anyone looking to start a new web services
project should seriously consider CXF. The main barrier is liable to be documentation at this
moment. We will be adding LOTS more documentation though over the next couple weeks as we
move toward the 2.0 final release.</p>

<p>CXF includes many new features for XFire users:</p>
<ul>
	<li>Improved WSDL support</li>
	<li>Improved JAX-WS support</li>
	<li>Improved JMS transport</li>
	<li>Maven plugins</li>
	<li>Spring 2.0 syntax support</li>
	<li>Improved WS-&#42; support</li>
	<li>Cleaned up APIs for building services</li>
	<li>Easier to use extension points</li>
	<li>RESTful services support</li>
	<li>Support for a "bare" XML binding, which doesn't include a SOAP envelope</li>
</ul>


<h2><a name="XFireMigrationGuide-Whoshouldnotmigrate"></a>Who should not
migrate</h2>

<p>There a couple small areas where we haven't replicated all of the XFire functionality
yet. Namely the JiBX and XMLBeans databindings. These will be ported for CXF 2.1. The only
other reason not to migrate to CXF that we see is a requirement for Java 1.4. Although, we
would encourage users to take a look at using CXF on Java 1.4 via <a href="http://retrotranslator.sourceforge.net/"
class="external-link" rel="nofollow">Retrotranslator</a> (but be sure to read <a
href="http://www.nabble.com/Java-1.4-tf4094750.html" class="external-link" rel="nofollow">this
thread</a> first).</p>

<h1><a name="XFireMigrationGuide-ServiceFactories"></a>Service Factories</h1>

<p>XFire included serveral service factories for building services. CXF also includes
service factories, but the concept has been improved somewhat to make them easier to use.
CXF now includes the concept of ServerFactoryBeans which produce Servers, ClientFactoryBeans
which produce Clients, and ClientProxyFactoryBeans which produce Client proxies.</p>

<p>CXF now includes the following classes:</p>
<ul>
	<li>ServerFactoryBean - This creates a server endpoint from a class</li>
	<li>ClientProxyFactoryBean - this creates a client proxy from a class</li>
	<li>JaxWsServerFactoryBean - This creates a JAX-WS server endpoint from a class or
WSDL</li>
	<li>JaxWsProxyFactoryBean - this creates a JAX-WS client proxy from a class</li>
</ul>


<p>Its important to keep in mind a few differences in how CXF works compared to XFire:</p>
<ul>
	<li>CXF uses a bean factory approach. This means that there is one (Server/ClientProxy)FactoryBean
per endpoint. In XFire these beans could be reused.</li>
	<li>CXF requires that you specify the endpoint address, unless it finds it in your
WSDL. If you're using HTTP this has some nice benefits.
	<ul>
		<li>If you haven't set up the Servlet transport, it will automatically start an embedded
Jetty instance for you. In XFire this required you to use the XFireHttpServer class, resulting
in additional work.</li>
		<li>This allows you to map services to different URLs easier. In XFire the way URLs
were mapped to Services was much more static.</li>
	</ul>
	</li>
	<li>When you specify an endpoint address for your service, it's important to remember
that when you're using the sServlet you don't need to specify the host name. Lets say you
set up the CXFServlet to listen on "http://localhost/services". If you specify your endpoint
address as "/myservice" then all requests that come to "http://localhost/services/myservice"
will go to your service.</li>
	<li>JAXB is now the <b>default</b> databinding. Any time you want to use
Aegis, you must explicitly say so.</li>
</ul>


<h2><a name="XFireMigrationGuide-ExampleObjectServiceFactoryMigration"></a>Example
ObjectServiceFactory Migration</h2>

<table class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><tbody><tr>
<td class="confluenceTd" valign="top" width="50%">
<p>Here is an example of using the ObjectServiceFactory in XFire:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ObjectServiceFactory osf = <span class="code-keyword">new</span> ObjectServiceFactory();
Service service = osf.create(MyServiceInterface.class);
service.setInvoker(<span class="code-keyword">new</span> BeanInvoker(<span
class="code-keyword">new</span> MyServiceImpl());
</pre>
</div></div></td>
<td class="confluenceTd" valign="top">
<p>This would be the CXF equivalent:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
ServerFactoryBean sf = <span class="code-keyword">new</span> ServerFactoryBean();
sf.getServiceFactory().setDataBinding(<span class="code-keyword">new</span> AegisDatabinding();
sf.setServiceBean(<span class="code-keyword">new</span> MyServiceImpl());
sf.setServiceClass(MyServiceInterface.class);
sf.setAddress(<span class="code-quote">"http:<span class="code-comment">//localhost:8080/myservice"</span>);
</span>sf.create();
</pre>
</div></div></td></tr></tbody></table>

<h2><a name="XFireMigrationGuide-ExampleAnnotationServiceFactoryMigration"></a>Example
AnnotationServiceFactory Migration</h2>

<table class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><tbody><tr>
<td class="confluenceTd" valign="top" width="50%">
<p>Here is an example of using the AnnotationServiceFactory in XFire:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
AnnotationServiceFactory osf = <span class="code-keyword">new</span> AnnotationServiceFactory();
Service service = osf.create(MyServiceInterface.class);
service.setInvoker(<span class="code-keyword">new</span> BeanInvoker(<span
class="code-keyword">new</span> MyServiceImpl());
</pre>
</div></div></td>
<td class="confluenceTd" valign="top">
<p>This would be the CXF equivalent:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
JaxWsServerFactoryBean sf = <span class="code-keyword">new</span> JaxWsServerFactoryBean
();
sf.getServiceFactory().setDataBinding(<span class="code-keyword">new</span> AegisDatabinding());
sf.setServiceClass(MyServiceImpl.class);
sf.setAddress(<span class="code-quote">"http:<span class="code-comment">//localhost:8080/myservice"</span>);
</span>sf.create();
</pre>
</div></div></td></tr></tbody></table>

<h2><a name="XFireMigrationGuide-ExampleJAXWSServiceFactoryMigration"></a>Example
JAXWSServiceFactory Migration</h2>

<table class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><tbody><tr>
<td class="confluenceTd" valign="top" width="50%">
<p>Here is an example of using the JAXWSServiceFactory in XFire:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
JAXWSServiceFactory sf = <span class="code-keyword">new</span> JAXWSServiceFactory();
Service service = sf.create(MyServiceImpl.class);
service.setInvoker(<span class="code-keyword">new</span> BeanInvoker(<span
class="code-keyword">new</span> MyServiceImpl());
</pre>
</div></div></td>
<td class="confluenceTd" valign="top">
<p>This would be the CXF equivalent:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
JaxWsServerFactoryBean sf = <span class="code-keyword">new</span> JaxWsServerFactoryBean();
sf.setServiceClass(MyServiceImpl.class);
sf.setAddress(<span class="code-quote">"http:<span class="code-comment">//localhost:8080/myservice"</span>);
</span>sf.create();
</pre>
</div></div></td></tr></tbody></table>

<h1><a name="XFireMigrationGuide-HTTPandServletSetup"></a>HTTP and Servlet
Setup</h1>

<p>CXF supports a much wider range of options for deploying your service over HTTP.
XFire created a static mapping between the HTTP URL and the service name - i.e. a service
named "HelloService" was accessible at <a href="http://localhost/services/HelloService"
class="external-link" rel="nofollow">http://localhost/services/HelloService</a>.
CXF on the other hand allows you to control the URL which your service is published on. This
address is provided to CXF either through the setAddress() call on the ServerFactoryBeans
or via your XML configuration.</p>

<p>Another improvement over XFire is that CXF will now transparently detect whether
the CXFServlet is being used. If it is, your service will be available on that location. If
it is not, CXF will automatically start an embedded Jetty instance (provided the cxf-rt-transports-http-jetty
module is on your classpath). No more calls to XFireHttpServer are needed&#33;</p>

<p>To set up the CXF servlet, please read the how-to on the <a href="/confluence/display/CXF20DOC/Servlet+Transport"
title="Servlet Transport">Servlet Transport</a> page.</p>

<p>To use the embedded Jetty instance, no extra work is needed. Simply follow the above
ServiceFactory examples.</p>

<h1><a name="XFireMigrationGuide-services.xml"></a>services.xml</h1>

<p>XFire included support for deploying your services via a services.xml file. In CXF
this file is named cxf.xml and will be loaded by the <a href="#XFireMigrationGuide-HTTPandServletSetup">CXFServlet</a></p>
<table class="sectionMacro" border="0" cellpadding="5" cellspacing="0" width="100%"><tbody><tr>
<td class="confluenceTd" valign="top" width="50%">
<p>XFire services.xml example:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;beans xmlns=<span class="code-quote">"http://xfire.codehaus.org/config/1.0"</span>&gt;</span>

<span class="code-tag">&lt;service <span class="code-keyword">xmlns:t</span>=<span
class="code-quote">"urn:my:namespace"</span>&gt;</span>
	<span class="code-tag">&lt;name&gt;</span>testservice<span class="code-tag">&lt;/name&gt;</span>
	<span class="code-tag">&lt;serviceClass&gt;</span>org.example.TestService
	<span class="code-tag">&lt;/serviceClass&gt;</span>
	<span class="code-tag">&lt;implementationClass&gt;</span>org.codehaus.xfire.spring.TestServiceImpl<span
class="code-tag">&lt;/implementationClass&gt;</span>
	<span class="code-tag">&lt;namespace&gt;</span>urn:my:namespace<span
class="code-tag">&lt;/namespace&gt;</span>
	<span class="code-tag">&lt;serviceFactory&gt;</span>org.codehaus.xfire.jaxws.JAXWSServiceFactory<span
class="code-tag">&lt;/serviceFactory&gt;</span>

	<span class="code-tag">&lt;properties&gt;</span>
		<span class="code-tag">&lt;property key=<span class="code-quote">"myKey"</span>&gt;</span>value<span
class="code-tag">&lt;/property&gt;</span>
        <span class="code-tag">&lt;/properties&gt;</span>

	<span class="code-tag">&lt;inHandlers&gt;</span>
		<span class="code-tag">&lt;handler handlerClass=<span class="code-quote">"org.codehaus.xfire.spring.TestHandler"</span>/&gt;</span>
	<span class="code-tag">&lt;/inHandlers&gt;</span>
<span class="code-tag">&lt;/service&gt;</span>

<span class="code-tag">&lt;/beans&gt;</span>
</pre>
</div></div></td>
<td class="confluenceTd" valign="top">
<p>CXF example:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
&lt;beans xmlns=<span class="code-quote">"http://www.springframework.org/schema/beans"</span>
      <span class="code-keyword">xmlns:xsi</span>=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span>
      <span class="code-keyword">xmlns:jaxws</span>=<span class="code-quote">"http://cxf.apache.org/jaxws"</span>
      xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd"&gt;
 <span class="code-tag">&lt;import resource=<span class="code-quote">"classpath:META-INF/cxf/cxf.xml"</span>
/&gt;</span>
 <span class="code-tag">&lt;import resource=<span class="code-quote">"classpath:META-INF/cxf/cxf-extension-soap.xml"</span>/&gt;</span>
 <span class="code-tag">&lt;import resource=<span class="code-quote">"classpath:META-INF/cxf/cxf-servlet.xml"</span>
/&gt;</span>

  &lt;jaxws:endpoint address=<span class="code-quote">"http://localhost/testService"</span>
    serviceName=<span class="code-quote">"t:testService"</span>
    <span class="code-keyword">xmlns:t</span>=<span class="code-quote">"urn:my:namespace"</span>&gt;
    <span class="code-tag">&lt;jaxws:implementor&gt;</span>
      <span class="code-tag">&lt;bean class=<span class="code-quote">"org.example.TestServiceImpl"</span>/&gt;</span>
    <span class="code-tag">&lt;/jaxws:implementor&gt;</span>
    <span class="code-tag">&lt;jaxws:properties&gt;</span>
      <span class="code-tag">&lt;entry key=<span class="code-quote">"foo"</span>
value=<span class="code-quote">"bar"</span>/&gt;</span>
    <span class="code-tag">&lt;/jaxws:properties&gt;</span>
    <span class="code-tag">&lt;jaxws:inInterceptors&gt;</span>
      <span class="code-tag">&lt;bean class=<span class="code-quote">"org.example.ExampleInterceptor"</span>/&gt;</span>
    <span class="code-tag">&lt;/jaxws:inInterceptors&gt;</span>
  <span class="code-tag">&lt;/jaxws:endpoint&gt;</span>

<span class="code-tag">&lt;/beans&gt;</span>
</pre>
</div></div></td></tr></tbody></table>
<p>There are a few important things to note here on the differences:</p>
<ul>
	<li>Many of these attributes are optional, such as the service name</li>
	<li>You don't need to specify a serviceClass if you are using JAX-WS as your service
should be annotated with the @WebService.endpointInterface attribute.</li>
	<li>The equivalent of XFire Handlers is <a href="/confluence/display/CXF20DOC/Interceptors"
title="Interceptors">Interceptors</a> inside CXF. They feature a much improved API&#33;</li>
</ul>


<p>The above sample is for JAX-WS/JSR181 services. For those developing services without
annotations, here's an example for the <a href="/confluence/display/CXF20DOC/Simple+Frontend"
title="Simple Frontend">Simple Frontend</a>"</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
&lt;beans xmlns=<span class="code-quote">"http://www.springframework.org/schema/beans"</span>
      <span class="code-keyword">xmlns:xsi</span>=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span>
      <span class="code-keyword">xmlns:simple</span>=<span class="code-quote">"http://cxf.apache.org/simple"</span>
      xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/simple
http://cxf.apache.org/schemas/simple.xsd"&gt;

  &lt;simple:server address=<span class="code-quote">"http://localhost/testService"</span>
    serviceClass=<span class="code-quote">"org.example.TestService"</span>&gt;
    <span class="code-tag">&lt;simple:serviceBean&gt;</span>
      <span class="code-tag">&lt;bean class=<span class="code-quote">"org.example.TestServiceImpl"</span>/&gt;</span>
    <span class="code-tag">&lt;/simple:serviceBean&gt;</span>
    <span class="code-tag">&lt;simple:properties&gt;</span>
      <span class="code-tag">&lt;entry key=<span class="code-quote">"foo"</span>
value=<span class="code-quote">"bar"</span>/&gt;</span>
    <span class="code-tag">&lt;/jaxws:properties&gt;</span>
    <span class="code-tag">&lt;simple:inInterceptors&gt;</span>
      <span class="code-tag">&lt;bean class=<span class="code-quote">"org.example.ExampleInterceptor"</span>/&gt;</span>
    <span class="code-tag">&lt;/simple:inInterceptors&gt;</span>
  <span class="code-tag">&lt;/simple:server&gt;</span>

<span class="code-tag">&lt;/beans&gt;</span>
</pre>
</div></div>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/XFire+Migration+Guide">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=27568&revisedVersion=21&originalVersion=20">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/XFire+Migration+Guide?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message