<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        color:black;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.comment-copy
        {mso-style-name:comment-copy;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext">Thanx for the detailed response, Brent! For the current project, initializing the parser pools was all I needed to move on to the next set of issues, so I think I am ok for now. The next bit of code to be
 migrated is much larger though, and so might need some additional capabilities; this’ll help me build a custom bootstrap when I get there.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">Thanx again,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><b><span style="color:windowtext">Stephen W. Chappell<o:p></o:p></span></b></p>
</div>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"> dev [mailto:dev-bounces@shibboleth.net]
<b>On Behalf Of </b>Brent Putman<br>
<b>Sent:</b> Thursday, June 18, 2015 3:19 PM<br>
<b>To:</b> dev@shibboleth.net<br>
<b>Subject:</b> Re: NPE while marshalling an object<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On 6/18/15 10:28 AM, <a href="mailto:Stephen.CTR.Chappell@faa.gov">
Stephen.CTR.Chappell@faa.gov</a> wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:windowtext">No, I’m sorry I wasn’t clear, it is a web service, and there is no main. I meant that this was the primary implementing class for my web service; which isn’t really entirely accurate either, I was working
 two similar issues at once and cited the wrong one. Sorry about that.</span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""><br>
No problem.  In that case, all I was really getting at was: if you are putting different sets of jars and/or duplicate jars into different classloaders in a hierarchical classloader environment, you might run into problems.  I.e. a servlet container will usually
 have several; Tomcat for example as "shared" and "common" ones, in addition to the one for each webapp. It's even worse in a more complex app server like JBoss and you're doing full blown EJB stuff (or so I hear). If you put all your dependencies right in
 your webapp's WEB-INF/lib, that should avoid any such problems. <br>
<br>
<br>
<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">But it looks like I may have solved this issue (and possibly created others, but that is another story) – my project also uses CXF and WSS4J, and it looks like the WSS4J initialization code doesn’t properly
 initialize everything in OpenSAML, particularly the parser pools.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""><br>
I was vaguely aware WSS4J was updating to OpenSAML 3.x, but didn't know they had released yet.<br>
<br>
<br>
<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">They’ve put a fix in their bootstrapping code, which for the moment I’ve cribbed and stuck in my own code; that’s gotten me past the immediate issue.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:windowtext"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""><br>
<br>
I just took a quick glance at WSS4J 2.1.1, and yeah, in their OpenSAMLBootstrap and OpenSAMLUtil, they are adlib-ing with their approach and not really following what we document (InitializationService).  They may have a good reason for that (although I don't
 know what that is...), but just be aware that there's other things besides the ParserPool they also aren't doing.  So depending on what you do with OpenSAML, other things may not work correctly.<br>
<br>
If you want specifics, InitializationService just runs all the impls of the interface: org.opensaml.core.config.Initializer.  An IDE can show you all the impls of that interface.<br>
<br>
Frankly, if they really *can't* use our InitializationService for some reason, what they (or you) should really do is just instantiate the individual Initializers desired and invoke them manually.  That would I think be preferable to just making something up
 ad hoc.  That's all the InitializationService actually does.  If someone from WSS4J is on this list and that doesn't make sense, let me know and I'll explain in detail.<br>
<br>
<br>
<br>
<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">I’ll look at adding the –impl dependencies as well; it wasn’t really clear how everything was broken up, and what I would really need to include. I try to run a bit lean if I can; just sucking in everything
 seemed a bit excessive.</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""><br>
You don't necessarily need to add *all* the -impls in OpenSAML.  But the rule of thumb would be that if you use anything from a particular -api, you probably are going to need the corresponing -impl.  Definitely so if what you are using is any -api's XMLObject
 interfaces - the impls, builders, marshallers and unmarshallers for those are going to be in the -impl module.<br>
<br>
<o:p></o:p></span></p>
</div>
</body>
</html>