cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r910599 - in /websites/production/cxf/content: cache/main.pageCache faq.html
Date Fri, 30 May 2014 17:46:50 GMT
Author: buildbot
Date: Fri May 30 17:46:50 2014
New Revision: 910599

Log:
Production update by buildbot for cxf

Modified:
    websites/production/cxf/content/cache/main.pageCache
    websites/production/cxf/content/faq.html

Modified: websites/production/cxf/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/cxf/content/faq.html
==============================================================================
--- websites/production/cxf/content/faq.html (original)
+++ websites/production/cxf/content/faq.html Fri May 30 17:46:50 2014
@@ -110,19 +110,31 @@ Apache CXF -- FAQ
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><h1 id="FAQ-FrequentlyAskedQuestions">Frequently
Asked Questions</h1><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1387471138280 {padding: 0px;}
-div.rbtoc1387471138280 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1387471138280 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401471983036 {padding: 0px;}
+div.rbtoc1401471983036 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401471983036 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1387471138280">
+/*]]>*/</style></p><div class="toc-macro rbtoc1401471983036">
 <ul class="toc-indentation"><li><a shape="rect" href="#FAQ-General">General</a>
-<ul class="toc-indentation"><li><a shape="rect" href="#FAQ-CanCXFrunwithJDK1.7?">Can
CXF run with JDK 1.7?</a></li><li><a shape="rect" href="#FAQ-CanCXFrunwithJDK1.6?">Can
CXF run with JDK 1.6?</a></li><li><a shape="rect" href="#FAQ-CanCXFrunwithJDK1.5?">Can
CXF run with JDK 1.5?</a></li><li><a shape="rect" href="#FAQ-CanCXFrunwithouttheSunreferenceSAAJimplementation?">Can
CXF run without the Sun reference SAAJ implementation?</a></li><li><a
shape="rect" href="#FAQ-AretherecommercialofferingsofCXFthatprovideservices,support,andadditionalfeatures?">Are
there commercial offerings of CXF that provide services, support, and additional features?</a></li><li><a
shape="rect" href="#FAQ-IsthereanApacheCXFcertificationprogram?">Is there an Apache CXF
certification program?</a></li></ul>
+<ul class="toc-indentation"><li><a shape="rect" href="#FAQ-CanCXFrunwithJDK1.8/Java8?">Can
CXF run with JDK 1.8/Java 8?</a></li><li><a shape="rect" href="#FAQ-CanCXFrunwithJDK1.7/Java7?">Can
CXF run with JDK 1.7/Java 7?</a></li><li><a shape="rect" href="#FAQ-CanCXFrunwithJDK1.6?">Can
CXF run with JDK 1.6?</a></li><li><a shape="rect" href="#FAQ-CanCXFrunwithouttheSunreferenceSAAJimplementation?">Can
CXF run without the Sun reference SAAJ implementation?</a></li><li><a
shape="rect" href="#FAQ-AretherecommercialofferingsofCXFthatprovideservices,support,andadditionalfeatures?">Are
there commercial offerings of CXF that provide services, support, and additional features?</a></li><li><a
shape="rect" href="#FAQ-IsthereanApacheCXFcertificationprogram?">Is there an Apache CXF
certification program?</a></li></ul>
 </li><li><a shape="rect" href="#FAQ-JAX-WSRelated">JAX-WS Related</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#FAQ-Thepartsinmygeneratedwsdlhavenamesoftheform&quot;arg0&quot;,&quot;arg1&quot;,...Whydon'ttheparts(andJavageneratedfromthem)usetheniceparameternamesItypedintotheinterfacedefinition?">The
parts in my generated wsdl have names of the form "arg0", "arg1", ... Why don't the parts
(and Java generated from them) use the nice parameter names I typed into the interface definition?</a></li><li><a
shape="rect" href="#FAQ-HowcanIaddsoapheaderstotherequest/response?">How can I add soap
headers to the request/response?</a></li><li><a shape="rect" href="#FAQ-HowcanIturnonschemavalidationforjaxwsendpoint?">How
can I turn on schema validation for jaxws endpoint?</a></li><li><a shape="rect"
href="#FAQ-AreJAX-WSclientproxiesthreadsafe?">Are JAX-WS client proxies thread safe?</a></li><li><a
shape="rect" href="#FAQ-Thegeneratedwsdl(GETrequestonthe?wsdladdress)doesn'tcontainthemessages,types,portType,etc...WhatdidIdowrong?">The
generated wsdl (GET
  request on the ?wsdl address) doesn't contain the messages, types, portType, etc... What
did I do wrong?</a></li></ul>
 </li><li><a shape="rect" href="#FAQ-SpringRelated">Spring Related</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#FAQ-WhenusingSpringAOPtoenablethingsliketransactionsandsecurity,thegeneratedWSDLisverymessedupwithwrongnamespaces,partnames,etc...">When
using Spring AOP to enable things like transactions and security, the generated WSDL is very
messed up with wrong namespaces, part names, etc...</a></li></ul>
 </li></ul>
-</div><h2 id="FAQ-General">General</h2><h3 id="FAQ-CanCXFrunwithJDK1.7?">Can
CXF run with JDK 1.7?</h3><p>Yes. CXF supports Java 7. Since Java 7 contains the
2.2.x versions of both JAXB and JAX-WS API jars, using CXF with Java 7 is much easier than
with Java 6.</p><h3 id="FAQ-CanCXFrunwithJDK1.6?">Can CXF run with JDK 1.6?</h3><p>JDK
1.6 incorporates the JAXB reference implementation. However, it incorporates an old version
of the RI. CXF does not support this version. As of 1.6_04, this is easy to deal with: you
must put the versions of JAXB RI (the 'impl' and 'xjc' jars) that we include with CXF in your
classpath. As of this writing, these are version 2.2.1.</p><h3 id="FAQ-CanCXFrunwithJDK1.5?">Can
CXF run with JDK 1.5?</h3><p>Yes for CXF 2.6.x and older. Keep in mind though
that Java 2 SE 5.0 with JDK 1.5 has reached end of life (<a shape="rect" class="external-link"
href="http://www.oracle.com/technetwork/java/eol-135779.html" rel="nofollow">EOL</a>).
CXF 2.7.x no longer support
 s Java 5. In order to upgrade to 2.7.x, you must be using Java 6 (or newer).</p><h3
id="FAQ-CanCXFrunwithouttheSunreferenceSAAJimplementation?">Can CXF run without the Sun
reference SAAJ implementation?</h3><p>In many cases, CXF can run without an SAAJ
implementation. However, some features such as JAX-WS handlers and WS-Security do require
an SAAJ implementation. By default, CXF ships with the Sun SAAJ implementation, but CXF also
supports axis2-saaj version 1.4.1 as an alternative. When using a Java6 JRE, CXF can also
use the SAAJ implementation built into Java.</p><h3 id="FAQ-AretherecommercialofferingsofCXFthatprovideservices,support,andadditionalfeatures?">Are
there commercial offerings of CXF that provide services, support, and additional features?</h3><p>Several
companies provide services, training, documentation, support, etc... on top of CXF. Some of
those companies also produce products that are either based on Apache CXF or include Apache
CXF. See the <a shape="rect" href
 ="commercial-cxf-offerings.html">Commercial CXF Offerings</a> page for a list of
companies and the services they provide.</p><h3 id="FAQ-IsthereanApacheCXFcertificationprogram?">Is
there an Apache CXF certification program?</h3><p>No, but Oracle's <a shape="rect"
class="external-link" href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;p_exam_id=1Z0_862"
rel="nofollow">SCDJWS</a> certification covers the web services stack and related
areas. Note, that the popular SCJP certification is a prerequisite to the SCDJWS. Also, check
out the <a shape="rect" class="external-link" href="http://www.coderanch.com/forums/f-80/java-Web-Services-SCDJWS"
rel="nofollow">SCDJWS Forum</a> at the Java Ranch for healthy discussions in regards
to the certification. Study notes can be found at <a shape="rect" class="external-link"
href="http://java.boot.by/scdjws5-guide/" rel="nofollow">SCDJWS 5.0 Study Guide</a>,
<a shape="rect" class="external-link" href="http://en.wi
 kibooks.org/wiki/Sun_Certified_Web_Services_Developer_Certification" rel="nofollow">WikiBooks</a>
and <a shape="rect" class="external-link" href="http://www.coderanch.com/how-to/content/Exam-Objectives-5.pdf"
rel="nofollow">Ivan A. Krizsan Study Notes</a>. Java Ranch also provides and information
<a shape="rect" class="external-link" href="http://www.coderanch.com/how-to/java/ScdjwsLinks"
rel="nofollow">page</a> in regards to the certification.</p><h2 id="FAQ-JAX-WSRelated">JAX-WS
Related</h2><h3 id="FAQ-Thepartsinmygeneratedwsdlhavenamesoftheform&quot;arg0&quot;,&quot;arg1&quot;,...Whydon'ttheparts(andJavageneratedfromthem)usetheniceparameternamesItypedintotheinterfacedefinition?">The
parts in my generated wsdl have names of the form "arg0", "arg1", ... Why don't the parts
(and Java generated from them) use the nice parameter names I typed into the interface definition?</h3><p><strong>Official
answer:</strong> The JAX-WS spec (specifically section 3.6.1) mandates that it be generat
 ed this way. To customize the name, you have to use an @WebParam(name = "blah") annotation
to specify better names. (You can use @WebResult for the return value, but you'll only see
the results if you look at the XML.)</p><p><strong>Reason:</strong>
One of the mysteries of java is that abstract methods (and thus interface methods) do NOT
get their parameter names compiled into them even with debug info. Thus, when the service
model is built from an interface, there is no way to determine the names that were using in
the original code.</p><p>If the service is built from a concrete class (instead
of an interface) AND the class was compiled with debug info, we can get the parameter names.
The simple frontend does this. However, this could cause potential problems. For example,
when you go from developement to production, you may turn off debug information (remove -g
from javac flags) and suddenly the application may break since the generated wsdl (and thus
expect soap messages) would c
 hange. Thus, the JAX-WS spec writers went the safe route and mandate that you have to use
the @WebParam annotations to specify the more descriptive names.</p><h3 id="FAQ-HowcanIaddsoapheaderstotherequest/response?">How
can I add soap headers to the request/response?</h3><p>There are several ways
to do this depending on how your project is written (code first or wsdl first) and requirements
such as portability.</p><ol><li>The "JAX-WS" standard way to do this is
to write a SOAP Handler that will add the headers to the SOAP message and register the handler
on the client/server. This is completely portable from jax-ws vendor to vendor, but is also
more difficult and can have performance implications. You have to handle the conversion of
the JAXB objects to XML yourself. It involves having the entire soap message in a DOM which
breaks streaming. Requires more memory. etc... However, it doesn't require any changes to
wsdl or SEI interfaces.</li><li>JAX-WS standard "java first" way: if doi
 ng java first development, you can just add an extra parameter to the method and annotate
it with @WebParam(header = true). If it's a response header, make it a Holder and add the
mode = Mode.OUT to @WebParam.</li><li>wsdl first way: you can add elements to
the message in the wsdl and then mark them as soap:headers in the soap:binding section of
the wsdl. The wsdl2java tool will generate the @WebParam(header = true) annotations as above.
With CXF, you can also put the headers in their own message (not the same message as the request/response)
and mark them as headers in the soap:binding, but you will need to pass the -exsh true flag
to wsdl2java to get the paramters generated. This is not portable to other jax-ws providers.
Processing headers from other messages it optional in the jaxws spec.</li><li>CXF
proprietary way: In the context (BindingProvider.getRequestContext() on client, WebServiceContext
on server), you can add a List&lt;org.apache.cxf.headers.Header&gt; with the key He
 ader.HEADER_LIST. The headers in the list are streamed at the appropriate time to the wire
according to the databinding object found in the Header object. Like option 1, this doesn't
require changes to wsdl or method signatures. However, it's much faster as it doesn't break
streaming and the memory overhead is less.</li></ol><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div><h2 id="FAQ-General">General</h2><h3 id="FAQ-CanCXFrunwithJDK1.8/Java8?">Can
CXF run with JDK 1.8/Java 8?</h3><p>Most of CXF 3.0.0 can run with Java 8. &#160;Building
CXF cannot currently be done with Java8 due to problems with various Maven plugins, problems
with JIBX, etc... &#160; The tooling may require a&#160;-Djavax.xml.accessExternalSchema=file
&#160;VM argument to allow JAXB to process and parse schemas. &#160; Many of the CXF
tests fail for the same reason. &#160; We are hoping that with CXF 3.0.1, we can fix a
majority of the issues (JIBX issues are still outstanding) via updates to tests, new version
of JAXB, etc....</p><h3 id="FAQ-CanCXFrunwithJDK1.7/Java7?">Can CXF run with JDK
1.7/Java 7?</h3><p>Yes. CXF supports Java 7. Since Java 7 contains the 2.2.x versions
of both JAXB and JAX-WS API jars, using CXF with Java 7 is much easier than with Java 6.</p><h3
id="FAQ-CanCXFrunwithJDK1.6?">Can CXF run with JDK 1.6?</h3><p>JDK 1.6 incorporates
the JAXB reference implem
 entation. However, it incorporates an old version of the RI. CXF does not support this version.
As of 1.6_04, this is easy to deal with: you must put the versions of JAXB RI (the 'impl'
and 'xjc' jars) that we include with CXF in your classpath. As of this writing, these are
version 2.2.10.</p>    <div class="aui-message hint shadowed information-macro">
+                            <span class="aui-icon icon-hint">Icon</span>
+                <div class="message-content">
+                            <p>The current plan is that CXF 3.1 will no longer support
Java 6 and will require Java 7 or newer. Users are strongly encouraged to start moving to
Java 7.</p>
+                    </div>
+    </div>
+<p><span style="color: rgb(0,0,0);font-size: 1.4em;line-height: 1.5625;">Can
CXF run with JDK 1.5?</span></p><p>Yes for CXF 2.6.x and older. Keep in
mind though that Java 2 SE 5.0 with JDK 1.5 has reached end of life (<a shape="rect" class="external-link"
href="http://www.oracle.com/technetwork/java/eol-135779.html" rel="nofollow">EOL</a>).
CXF 2.7.x no longer supports Java 5. In order to upgrade to 2.7.x, you must be using Java
6 (or newer).</p>    <div class="aui-message hint shadowed information-macro">
+                            <span class="aui-icon icon-hint">Icon</span>
+                <div class="message-content">
+                            <p>There is one more planned release for the 2.6.x series
of CXF. After that, there are no more planned releases of CXF that will support Java 5. Users
are strongly encouraged to start moving to Java 7 and to start migrating to newer versions
of CXF.</p>
+                    </div>
+    </div>
+<p>&#160;</p><h3 id="FAQ-CanCXFrunwithouttheSunreferenceSAAJimplementation?">Can
CXF run without the Sun reference SAAJ implementation?</h3><p>In many cases, CXF
can run without an SAAJ implementation. However, some features such as JAX-WS handlers and
WS-Security do require an SAAJ implementation. By default, CXF ships with the Sun SAAJ implementation,
but CXF also supports axis2-saaj version 1.4.1 as an alternative. When using a Java6 JRE,
CXF can also use the SAAJ implementation built into Java.</p><h3 id="FAQ-AretherecommercialofferingsofCXFthatprovideservices,support,andadditionalfeatures?">Are
there commercial offerings of CXF that provide services, support, and additional features?</h3><p>Several
companies provide services, training, documentation, support, etc... on top of CXF. Some of
those companies also produce products that are either based on Apache CXF or include Apache
CXF. See the <a shape="rect" href="commercial-cxf-offerings.html">Commercial CXF Offerings</a>
page 
 for a list of companies and the services they provide.</p><h3 id="FAQ-IsthereanApacheCXFcertificationprogram?">Is
there an Apache CXF certification program?</h3><p>No, but Oracle's <a shape="rect"
class="external-link" href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;p_exam_id=1Z0_862"
rel="nofollow">SCDJWS</a> certification covers the web services stack and related
areas. Note, that the popular SCJP certification is a prerequisite to the SCDJWS. Also, check
out the <a shape="rect" class="external-link" href="http://www.coderanch.com/forums/f-80/java-Web-Services-SCDJWS"
rel="nofollow">SCDJWS Forum</a> at the Java Ranch for healthy discussions in regards
to the certification. Study notes can be found at <a shape="rect" class="external-link"
href="http://java.boot.by/scdjws5-guide/" rel="nofollow">SCDJWS 5.0 Study Guide</a>,
<a shape="rect" class="external-link" href="http://en.wikibooks.org/wiki/Sun_Certified_Web_Services_Developer_Certification
 " rel="nofollow">WikiBooks</a> and <a shape="rect" class="external-link" href="http://www.coderanch.com/how-to/content/Exam-Objectives-5.pdf"
rel="nofollow">Ivan A. Krizsan Study Notes</a>. Java Ranch also provides and information
<a shape="rect" class="external-link" href="http://www.coderanch.com/how-to/java/ScdjwsLinks"
rel="nofollow">page</a> in regards to the certification.</p><h2 id="FAQ-JAX-WSRelated">JAX-WS
Related</h2><h3 id="FAQ-Thepartsinmygeneratedwsdlhavenamesoftheform&quot;arg0&quot;,&quot;arg1&quot;,...Whydon'ttheparts(andJavageneratedfromthem)usetheniceparameternamesItypedintotheinterfacedefinition?">The
parts in my generated wsdl have names of the form "arg0", "arg1", ... Why don't the parts
(and Java generated from them) use the nice parameter names I typed into the interface definition?</h3><p><strong>Official
answer:</strong> The JAX-WS spec (specifically section 3.6.1) mandates that it be generated
this way. To customize the name, you have to use an @WebParam(na
 me = "blah") annotation to specify better names. (You can use @WebResult for the return value,
but you'll only see the results if you look at the XML.)</p><p><strong>Reason:</strong>
One of the mysteries of java is that abstract methods (and thus interface methods) do NOT
get their parameter names compiled into them even with debug info. Thus, when the service
model is built from an interface, there is no way to determine the names that were using in
the original code.</p><p>If the service is built from a concrete class (instead
of an interface) AND the class was compiled with debug info, we can get the parameter names.
The simple frontend does this. However, this could cause potential problems. For example,
when you go from developement to production, you may turn off debug information (remove -g
from javac flags) and suddenly the application may break since the generated wsdl (and thus
expect soap messages) would change. Thus, the JAX-WS spec writers went the safe route and
mandat
 e that you have to use the @WebParam annotations to specify the more descriptive names.</p><h3
id="FAQ-HowcanIaddsoapheaderstotherequest/response?">How can I add soap headers to the
request/response?</h3><p>There are several ways to do this depending on how your
project is written (code first or wsdl first) and requirements such as portability.</p><ol><li>The
"JAX-WS" standard way to do this is to write a SOAP Handler that will add the headers to the
SOAP message and register the handler on the client/server. This is completely portable from
jax-ws vendor to vendor, but is also more difficult and can have performance implications.
You have to handle the conversion of the JAXB objects to XML yourself. It involves having
the entire soap message in a DOM which breaks streaming. Requires more memory. etc... However,
it doesn't require any changes to wsdl or SEI interfaces.</li><li>JAX-WS standard
"java first" way: if doing java first development, you can just add an extra parameter to
t
 he method and annotate it with @WebParam(header = true). If it's a response header, make
it a Holder and add the mode = Mode.OUT to @WebParam.</li><li>wsdl first way:
you can add elements to the message in the wsdl and then mark them as soap:headers in the
soap:binding section of the wsdl. The wsdl2java tool will generate the @WebParam(header =
true) annotations as above. With CXF, you can also put the headers in their own message (not
the same message as the request/response) and mark them as headers in the soap:binding, but
you will need to pass the -exsh true flag to wsdl2java to get the paramters generated. This
is not portable to other jax-ws providers. Processing headers from other messages it optional
in the jaxws spec.</li><li>CXF proprietary way: In the context (BindingProvider.getRequestContext()
on client, WebServiceContext on server), you can add a List&lt;org.apache.cxf.headers.Header&gt;
with the key Header.HEADER_LIST. The headers in the list are streamed at the appro
 priate time to the wire according to the databinding object found in the Header object. Like
option 1, this doesn't require changes to wsdl or method signatures. However, it's much faster
as it doesn't break streaming and the memory overhead is less.</li></ol><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[List&lt;Header&gt;
headers = new ArrayList&lt;Header&gt;();
 Header dummyHeader = new Header(new QName(&quot;uri:org.apache.cxf&quot;, &quot;dummy&quot;),
&quot;decapitated&quot;,
                                 new JAXBDataBinding(String.class));



Mime
View raw message