<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D08ARXo_eSp7ImA9WhBUFUU.&quot;"><id>tag:blogger.com,1999:blog-13556721</id><updated>2013-05-03T22:27:24.441+09:30</updated><category term="JPA" /><category term="jdbc" /><category term="turner" /><category term="devx" /><category term="web" /><category term="cluster" /><category term="singleton" /><category term="glassfish" /><category term="classloading" /><category term="events" /><category term="WebSockets" /><category term="mtb" /><category term="DataSource" /><category term="standalone" /><category term="Bean Validation" /><category term="WebLogic Server" /><category term="JAX-RPC" /><category term="ejb" /><category term="Derby" /><category term="Java SE 7" /><category term="AJUG" /><category term="Mac OS X" /><category term="domain" /><category term="performance" /><category term="CDI" /><category term="jmx" /><category term="EC2" /><category term="Servlet" /><category term="Cloud" /><category term="12c" /><category term="wls" /><category term="apache" /><category term="debug" /><category term="xml" /><category term="jsf" /><category term="java 7" /><category term="xsd" /><category term="security" /><category term="VI" /><category term="Web Services" /><category term="schema" /><category term="remote" /><category term="jsp" /><category term="jax-rs" /><category term="Logging" /><category term="NetBeans. JSF" /><category term="Java" /><category term="NetBeans" /><category term="OPMN" /><category term="XCode" /><category term="dms" /><category term="oc4j" /><category term="groovy" /><category term="Maven" /><category term="EclipseLink" /><category term="CAT" /><category term="weblogic" /><category term="zip" /><title>The Buttso Blathers</title><subtitle type="html">&lt;b&gt;Interrupt Driven Posting&lt;/b&gt; ... When I think of something to write, I'll write it.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://buttso.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>179</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TheButtsoBlathers" /><feedburner:info uri="thebuttsoblathers" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-34.929</geo:lat><geo:long>138.601</geo:long><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/2.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><entry gd:etag="W/&quot;A08MSHw5eCp7ImA9WhJbFEk.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-4165273185023337383</id><published>2012-09-24T10:54:00.004+09:30</published><updated>2012-09-24T10:54:49.220+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-24T10:54:49.220+09:30</app:edited><title>ServerSent-Events on WebLogic Server</title><content type="html">In addition to the WebSocket support we've added into the next major release of WebLogic Server (version 12.1.2&amp;nbsp; with all usual caveats with respect to release timeframes, no guarantee, etc.) we've also added support for the HTML5 ServerSent-Event model through collaborating with the GlassFish team and integrating the GlassFish ServerSent-Event feature.&lt;br /&gt;
&lt;br /&gt;
The HTML5 ServerSent-Event model provides a mechanism to allow 
browser clients to establish a uni-directional communication path to a 
server, where the server is then able to push messages to the browser at
 any point in time.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A common JavaScript API (EventSource) is provided in modern 
browsers that allows the client to establish connections 
to the server and register callback functions to handle events as they come in over 
the connection, which can then be used to make any necessary page updates.&lt;br /&gt;
&lt;br /&gt;
Some good sources of information on ServerSent-Events/EventSources are: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dev.w3.org/html5/eventsource"&gt;http://dev.w3.org/html5/eventsource&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.html5rocks.com/en/tutorials/eventsource/basics"&gt;http://www.html5rocks.com/en/tutorials/eventsource/basics&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
This new feature in WebLogic Server and GlassFish provides a small Java API and a couple of annotations that 
developers use to create and publish ServerSent-Event handlers, from 
which applications on the server can use to send messages to connected 
browser clients at any time, essentially enabling applications to push 
messages to clients over standard HTTP(S).&lt;br /&gt;
&lt;br /&gt;
The runtime component of the feature uses CDI to instantiate and manage the handlers and support the injection of them into other application components as well as setting up and managing the asynchronous connection for each client. &lt;br /&gt;
&lt;br /&gt;
Jitu from the GlassFish team provided some information on the feature earlier in the year: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://weblogs.java.net/blog/jitu/archive/2012/04/20/server-sent-events-sse-glassfish"&gt;http://weblogs.java.net/blog/jitu/archive/2012/04/20/server-sent-events-sse-glassfish&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
Bhakti also from the GlassFish team has a posting with an example of a SSE application that fetches data from a twitter feed and republishes to clients:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://weblogs.java.net/blog/bhaktimehta/archive/2012/04/21/server-sent-events-sample-glassfish" target="_blank"&gt;http://weblogs.java.net/blog/bhaktimehta/archive/2012/04/21/server-sent-events-sample-glassfish&amp;nbsp; &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Here it is running on a development build of WebLogic Server 12.1.2.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Dyzwm_KHD4E/UF-1fmkV9pI/AAAAAAAAAZs/7MT04k9cxYs/s1600/Screen+Shot+2012-09-24+at+10.50.19+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="504" src="http://1.bp.blogspot.com/-Dyzwm_KHD4E/UF-1fmkV9pI/AAAAAAAAAZs/7MT04k9cxYs/s640/Screen+Shot+2012-09-24+at+10.50.19+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Besides being an interesting new feature with lots of possibilities, this also serves to demonstrate how the WebLogic and GlassFish teams are cooperating and producing innovative outcomes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=L9KG1sot0RM:NBy4XIavKXE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/L9KG1sot0RM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/4165273185023337383/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=4165273185023337383&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4165273185023337383?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4165273185023337383?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/L9KG1sot0RM/serversent-events-on-weblogic-server.html" title="ServerSent-Events on WebLogic Server" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Dyzwm_KHD4E/UF-1fmkV9pI/AAAAAAAAAZs/7MT04k9cxYs/s72-c/Screen+Shot+2012-09-24+at+10.50.19+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/09/serversent-events-on-weblogic-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMGRH84fSp7ImA9WhJbEE4.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-3461439962042523745</id><published>2012-09-18T10:10:00.001+09:30</published><updated>2012-09-19T14:23:45.135+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-19T14:23:45.135+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="WebSockets" /><title>WebSockets on WebLogic Server</title><content type="html">We've been busy working on putting in support for the WebSocket Protocol into WebLogic Server with the intent to include it in the next major release (usual caveats apply with respect to dates, times, features, etc.).&amp;nbsp; Running the &lt;a href="http://autobahn.ws/testsuite" target="_blank"&gt;Autobahn WS Testsuite&lt;/a&gt;, which seems to be the industry defacto WebSocket compatibility verifier, we are seeing reports with very high levels of compatibility.&lt;br /&gt;
&lt;br /&gt;
As there's no standard WebSocket Java API at this point, we've chosen to model the API on the Grizzly WebSocket API with some minor changes where necessary.&amp;nbsp; Once the results of &lt;a href="http://www.jcp.org/en/jsr/detail?id=356" target="_blank"&gt;JSR-356 (Java API for WebSocket)&lt;/a&gt; becomes public, we'll look to implement and support that.&lt;br /&gt;
&lt;br /&gt;
In the background we have also done some integration work with the earlier&lt;a href="http://java.net/projects/websocket-sdk" target="_blank"&gt; WebSocket-SDK&lt;/a&gt; that was being used as a vehicle for WebSocket API investigations in order to try it out and look at the SPI requirements -- but we won't expose it in WLS 12.1.2 and will wait for the formal Java API for WebSocket to be finalized.&lt;br /&gt;
&lt;br /&gt;
Back to WLS 12.1.2 and it's WebSocket API, as an exercise, I just ported the Apache Tomcat WebSocket demo called snake to run on WLS. &lt;br /&gt;
&lt;br /&gt;
The original Tomcat demo source is here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/snake/" target="_blank"&gt;http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/snake/ &lt;/a&gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Here it is running on a development build of WebLogic Server 12.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-BGtq9FNdIac/UFe86esnPtI/AAAAAAAAAZE/yqiMVwP19Bg/s1600/Screen+Shot+2012-09-12+at+10.51.17+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://1.bp.blogspot.com/-BGtq9FNdIac/UFe86esnPtI/AAAAAAAAAZE/yqiMVwP19Bg/s640/Screen+Shot+2012-09-12+at+10.51.17+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There are some differences in terms of handling of connections and the registration approach but it was a pretty straight forward exercise and took about 30 minutes.&amp;nbsp; The demo didn't require too many major changes as the APIs are 
semantically similar in terms of accepting connections, handling 
messages and sending/broadcasting messages to clients.&amp;nbsp; Thankfully I 
didn't have to do anything on the client JavaScript side ... :-)&lt;br /&gt;
&lt;br /&gt;
We also have the Grizzy/GlassFish Chat demo running on WLS as well.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-V1PldajXO-0/UFfCnAaobJI/AAAAAAAAAZY/wv6t5ZIWxoE/s1600/Mail+Attachment-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-V1PldajXO-0/UFfCnAaobJI/AAAAAAAAAZY/wv6t5ZIWxoE/s640/Mail+Attachment-2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;More info to come as we progress the documentation, etc.&amp;nbsp; Should be some demos of this running at OOW this year too I'd guess.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=2fr0rEuy2T4:W5TLagQ5_7w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/2fr0rEuy2T4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/3461439962042523745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=3461439962042523745&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/3461439962042523745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/3461439962042523745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/2fr0rEuy2T4/websockets-on-weblogic-server.html" title="WebSockets on WebLogic Server" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-BGtq9FNdIac/UFe86esnPtI/AAAAAAAAAZE/yqiMVwP19Bg/s72-c/Screen+Shot+2012-09-12+at+10.51.17+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/09/websockets-on-weblogic-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04NQ3s6eCp7ImA9WhJSEk0.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-4408291395341612276</id><published>2012-07-02T13:29:00.000+09:30</published><updated>2012-07-02T13:36:32.510+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-02T13:36:32.510+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="CDI" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>JSF Managed Beans, @PostConstruct and CDI</title><content type="html">In a similar vein to my last post, with this blog I'd like to try and raise the visibility of another bug that is being seen in a few different places, and for which there is already a patch available for it. &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The basic issue here is that when an application is using JSF Managed Beans that in turn make use of the @PostContruct lifecycle annotation to execute some post-construction tasks, if the WEB-INF/beans.xml file is included and thus enables the CDI circuitry, the @PostConstruct method on the JSF ManagedBean is no longer invoked.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The good news is that if this scenario is part of your application design, then you can pick up and apply a patch for WLS 12c that will resolve the issue.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="p1"&gt;
The relevant base bug # is&lt;b&gt;&amp;nbsp;13703600&lt;/b&gt;&amp;nbsp;and the &lt;span style="background-color: white;"&gt;Smart Update patch ID is &lt;/span&gt;&lt;span class="s1" style="background-color: white;"&gt;&lt;b&gt;UXPH&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: white;"&gt;. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
From what I've read in the bug logs, we're also looking to include this fix in one of the patch-set-updates (PSUs) we are providing, so anyone that applies the relevant PSU should automatically get this fix.&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=A-Btsrr1XRs:SZWF6w4SbQY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/A-Btsrr1XRs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/4408291395341612276/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=4408291395341612276&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4408291395341612276?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4408291395341612276?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/A-Btsrr1XRs/jsf-managed-beans-postconstruct-and-cdi.html" title="JSF Managed Beans, @PostConstruct and CDI" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/07/jsf-managed-beans-postconstruct-and-cdi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GQH88eSp7ImA9WhJXE08.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-980732579858646594</id><published>2012-06-25T14:53:00.004+09:30</published><updated>2012-08-07T17:03:41.171+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-07T17:03:41.171+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Servlet" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><title>Multipart File Upload with WLS 12c</title><content type="html">Multipart File Upload with WLS 12c&lt;br /&gt;
&lt;br /&gt;
Just a word for anyone out there looking to use the Servlet 3.0 file upload feature with WLS 12c.&lt;br /&gt;
&lt;br /&gt;
If you use the annotation approach on the Servlet class, it works perfectly well &lt;br /&gt;
&lt;br /&gt;
However if you use the web.xml file to specify or override specific values using the multipart-config settings, then we have a small issue when we parse and apply those settings to the underling configuration bean.&amp;nbsp; This results in the maxFileSize value always being set to a value of 0.&lt;br /&gt;
&lt;br /&gt;
Ultimately this manifests itself as a problem when uploading any file since the file size will always exceed the maximum allowed size of 0.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The good news is there's a fix already available for it -- if you run into it, look for the patch for bug#14915431 or SmartUpdate patch 8EC8.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=60Q2w9zMUIA:gb3CYYJl8Jo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/60Q2w9zMUIA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/980732579858646594/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=980732579858646594&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/980732579858646594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/980732579858646594?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/60Q2w9zMUIA/multipart-file-upload-with-wls-12c.html" title="Multipart File Upload with WLS 12c" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/06/multipart-file-upload-with-wls-12c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YNRX49cSp7ImA9WhVQFU0.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-7695785904421322311</id><published>2012-04-04T12:41:00.000+09:30</published><updated>2012-04-04T12:43:14.069+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-04T12:43:14.069+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="ejb" /><category scheme="http://www.blogger.com/atom/ns#" term="singleton" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans" /><title>WebLogic and EJB 3.1 @Singleton @Startup with @PostConstruct</title><content type="html">&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;
That's quite the mouthful of annotations .. &lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
A &lt;a href="https://forums.oracle.com/forums/thread.jspa?messageID=10249928&amp;amp;tstart=0#10249928"&gt;question&lt;/a&gt; was posed recently on the &lt;a href="https://forums.oracle.com/forums/forum.jspa?forumID=580"&gt;WLS EJB OTN&lt;/a&gt; forum asking about why WLS doesn't correctly support this combination of annotations, where the method with the @PostConstruct annotation was not&amp;nbsp; being called as expected.&amp;nbsp;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
I thought I'd check it out with a simple test, which I'm sharing here.&amp;nbsp;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
1. Using NetBeans, I created a new "Web Application" project and assigned it to use my local WebLogic Server 12c installation.&amp;nbsp;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-yGDEKm_5GzI/T3urQpPzBoI/AAAAAAAAAXE/GAkkXc9LLg4/s1600/Screen%2Bshot%2B2012-04-04%2Bat%2B11.28.28%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://3.bp.blogspot.com/-yGDEKm_5GzI/T3urQpPzBoI/AAAAAAAAAXE/GAkkXc9LLg4/s400/Screen%2Bshot%2B2012-04-04%2Bat%2B11.28.28%2BAM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-80rjzu6QUww/T3urQ8dqPGI/AAAAAAAAAXQ/MfegDVEibjE/s1600/Screen%2Bshot%2B2012-04-04%2Bat%2B11.29.14%2BAM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://3.bp.blogspot.com/-80rjzu6QUww/T3urQ8dqPGI/AAAAAAAAAXQ/MfegDVEibjE/s400/Screen%2Bshot%2B2012-04-04%2Bat%2B11.29.14%2BAM.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
2.Within the project, I created an EJB 3.1 Singleton using the NetBeans wizard.&amp;nbsp; Not that creating EJBs in Java EE 6 requires this sort of assistance any more, having done away with most of the gunk from earlier versions of the specification.&amp;nbsp; With EJB 3.1, an EJB can now be just a class with annotations and the logic.&amp;nbsp; That's it. Simple.&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-4viGrpzi-nM/T3us-Kr4UPI/AAAAAAAAAXY/SNjwpt96B9o/s1600/Screen+shot+2012-04-04+at+11.33.03+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="283" src="http://3.bp.blogspot.com/-4viGrpzi-nM/T3us-Kr4UPI/AAAAAAAAAXY/SNjwpt96B9o/s400/Screen+shot+2012-04-04+at+11.33.03+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
3. On the EJB 3.1 Singleton, I then added the @Startup annotation to indicate that the bean must be instantiated when the container starts.&amp;nbsp; I also added a method which I annotated with @PostContruct to indicate it should be called after the class has been instantiated via its constructor.&amp;nbsp; The method prints a message to standard out when it is called.&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
I also added an instance variable with a default value, that is subsequently changed in the init method.&amp;nbsp; Accessing this from a servlet will also show whether the init method was invoked.&lt;/div&gt;
&lt;div style="width: 75%;"&gt;
&lt;pre class="prettyprint"&gt;/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sab.demo;

import java.util.Date;
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.LocalBean;
import javax.ejb.Startup;

/**
 *
 * @author sbutton
 */
@Singleton
@Startup
public class TestSingletonBean {
    
    private String TESTVAL = "IF YOU SEE THIS @POSTCONSTRUCT HAS NOT BEEN CALLED";
    
    @PostConstruct
    void init() {
        TESTVAL = "@PostConstruct method was called on " + new Date();
        System.out.printf("\n\nIn init: %s\n", TESTVAL);
    }
    
    public String getTestVal() {
        return TESTVAL; 
    }    
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
5. Since this test app is making use of the new Java EE 6 ease-of-use features that support the deployment of EJBs in Web applications, I could simply deploy this web application to see if the EJB Singleton was started on deployment and whether the @PostConstruct method was called.
&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-lALEpDDBvz8/T3uzPWouWoI/AAAAAAAAAXg/_1IuWZCMDVo/s1600/Screen+shot+2012-04-04+at+12.03.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://3.bp.blogspot.com/-lALEpDDBvz8/T3uzPWouWoI/AAAAAAAAAXg/_1IuWZCMDVo/s400/Screen+shot+2012-04-04+at+12.03.59+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
Looking on the console where WebLogic Server was started in NetBeans, the message from the init method is seen right after the application deployment completes.&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-OiIq5XSb358/T3u0GavnDcI/AAAAAAAAAXo/uswCr1gyBC4/s1600/Screen+shot+2012-04-04+at+12.07.20+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://2.bp.blogspot.com/-OiIq5XSb358/T3u0GavnDcI/AAAAAAAAAXo/uswCr1gyBC4/s640/Screen+shot+2012-04-04+at+12.07.20+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;b&gt;This demonstrates that WebLogic Server is correctly handling EJB 3.1 with @Singleton, @Startup and @PostConstruct.&lt;/b&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt; &lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
6. Taking it one minor step further.&lt;br /&gt;
&lt;br /&gt;
To independently observe the value of TESTVAL to ensure it has been modified via the init method, in the same project (it's very handy this web and ejb cohabitation ...) I added a servlet using the @WebServlet annotation.&lt;br /&gt;
&lt;br /&gt;
In the servlet, I used the @EJB annotation to obtain a reference to the @Singleton and displayed the result of calling its getTestVal method on the page.&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif; width: 75%;"&gt;
&lt;pre class="prettyprint"&gt;/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sab.demo;

import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author sbutton
 */
@WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet", "/test"})
public class TestServlet extends HttpServlet {

    @EJB
    TestSingletonBean singleton;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.println("");
            out.println("");
            out.println("&amp;lt;title&amp;gt;Servlet TestServlet&amp;lt;/title&amp;gt;");
            out.println("");
            out.println("");
            out.println("&amp;lt;h1&amp;gt;Servlet TestServlet at " + request.getContextPath() + "&amp;lt;/h1&amp;gt;");
            out.printf("&amp;lt;p&amp;gt;Singleton TESTVAL: %s&amp;lt;/p&amp;gt;", singleton.getTestVal());
            out.println("");
            out.println("");
        } finally {
            out.close();
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;
7. Calling this from a browser shows the value of TESTVAL to be that set in the init method.&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-IJl6GukKVRI/T3u2spIz4EI/AAAAAAAAAXw/VcFzQxOjT4M/s1600/Screen+shot+2012-04-04+at+12.18.48+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="473" src="http://3.bp.blogspot.com/-IJl6GukKVRI/T3u2spIz4EI/AAAAAAAAAXw/VcFzQxOjT4M/s640/Screen+shot+2012-04-04+at+12.18.48+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;
So in summary, this simple example shows WebLogic Server 12c supporting the EJB @Singleton and @Startup semantics correctly.&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=-qUN56bSvBs:cpHvYsNKcPs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/-qUN56bSvBs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/7695785904421322311/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=7695785904421322311&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7695785904421322311?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7695785904421322311?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/-qUN56bSvBs/weblogic-and-ejb-31-singleton-startup.html" title="WebLogic and EJB 3.1 @Singleton @Startup with @PostConstruct" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-yGDEKm_5GzI/T3urQpPzBoI/AAAAAAAAAXE/GAkkXc9LLg4/s72-c/Screen%2Bshot%2B2012-04-04%2Bat%2B11.28.28%2BAM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/04/weblogic-and-ejb-31-singleton-startup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYHR3w7eyp7ImA9WhVTGU8.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-1533041897922144311</id><published>2012-03-05T15:05:00.002+10:30</published><updated>2012-03-05T15:05:36.203+10:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T15:05:36.203+10:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="cluster" /><category scheme="http://www.blogger.com/atom/ns#" term="singleton" /><title>WebLogic Server Singleton Services</title><content type="html">WebLogic Server has supported the notion of a Singleton Service for a number of releases, in which WebLogic Server will maintain a single instance of a configured singleton service on one managed server within a cluster.&amp;nbsp; The singleton can be migrated to another server in the cluster, either automatically if it's current hosting server becomes available, or manually at an operators request.&amp;nbsp; The singleton can be optionally be configured with a preferred server to run on, as well as a set of named servers to which it can be migrated.&amp;nbsp; A singleton can be deployed as a standalone service or as part of an application deployment.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The documentation for the singleton server is here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://docs.oracle.com/cd/E24329_01/web.1211/e24425/service_migration.htm#i1051668"&gt;http://docs.oracle.com/cd/E24329_01/web.1211/e24425/service_migration.htm#i1051668&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
With this capability, a question arises from time-to-time whether the Singleton Service feature in WebLogic Server can be used to provide a cluster wide singleton service for applications to use
&lt;br /&gt;
&lt;br /&gt;
The answer to this is yes, but it requires you to do a few things to expose the singleton instance to applications running in the cluster so that it can be looked up and used.&lt;br /&gt;
&lt;br /&gt;
Since a singleton service is basically a POJO that implements the &lt;a href="http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24391/weblogic/cluster/singleton/SingletonService.html"&gt;weblogic.cluster.singleton.SingletonService&lt;/a&gt; interface, which gets instantiated and managed by WebLogic Server, it doesn't have a surface area that allows it to be seen by applications running in the cluster.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
To allow the singleton service to be used by applications, in addition to implementing the basic logic that is required, it also needs to perform the following tasks: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Provide an RMI Remote interface that the singleton service additionally implements, which then allows it to be accessed and invoked from any server in the cluster&lt;/li&gt;
&lt;li&gt;When the singleton service is &lt;em&gt;activated&lt;/em&gt;, it binds itself into the cluster-wide JNDI tree&lt;/li&gt;
&lt;li&gt;&amp;nbsp;When the singleton service is &lt;em&gt;deactivated&lt;/em&gt;, unbinds itself from the cluster-wide JNDI tree&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;DemoSingletonImpl&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;package sab.demo.wlssingletoninstance;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 *
 * @author sbutton
 */
public interface DemoSingleton extends Remote {
    
    public final String JNDI_NAME="DemoSingleton";
    
    public String singletonLocation();
    
    public String getWebLogicServerName();
    public String getHostName();
    
    public int increment();
    public int value();
    
}
&lt;/pre&gt;
&lt;b&gt;DemoSingletonImpl&lt;/b&gt;&lt;br /&gt;
&lt;pre class="prettyprint"&gt;package sab.demo.wlssingletoninstance;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.rmi.RemoteException;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import weblogic.cluster.singleton.SingletonService;
import weblogic.jndi.Environment;

/**
 * Example of a WebLogic Server Singleton Service that can be accessed from
 * other deployed components.
 *
 * @author sbutton
 */
public class DemoSingletonImpl implements DemoSingleton, SingletonService {

    private Integer counter = 0;
    final private Logger logger = new Logger().getLogger("DemoSingletonImpl");

    public DemoSingletonImpl() {
        super();
        logger.info("Constructor");
    }

    // ================================================================ //
    // ===================== Singleton Service Methods ================ //
    // ================================================================ //
    
    @Override
    public void activate() {
        logger.info("Activate on " + singletonLocation());
        counter = 0;
        try {
            Environment env = new Environment();
            Context ctx = env.getInitialContext();
            ctx.rebind(JNDI_NAME, this);
            logger.info("Executed bind for: " + JNDI_NAME);
            logger.info(String.format("Looking up JNDI_NAME returns: %s", ctx.lookup(JNDI_NAME).getClass().getName()));
            //quickTest();

        } catch (NamingException e) {
            logger.warning("Unable to bind: " + this.getClass().getName() + " into JNDI as:" + this.getClass().getName() + ", Error: " + e.getMessage());
        }
    }

    @Override
    public void deactivate() {
        logger.info("Deactivate on " + singletonLocation());
        try {
            Environment env = new Environment();
            Context ctx = env.getInitialContext();
            ctx.unbind(JNDI_NAME);
            logger.info("Executed unbind for: " + JNDI_NAME);
        } catch (NamingException e) {
            System.out.println("\tUnable to unbind from JNDI as: " + JNDI_NAME + ", Error: " + e.getMessage());
        }
    }

    // ================================================================ //
    // ========================= Remotable Methods ==================== //
    // ================================================================ //
    
    @Override
    public String singletonLocation()  {
        return String.format("%s %s",
                getHostName(),
                getWebLogicServerName());
    }

    @Override
    public String getWebLogicServerName() {
        return Utilities.getWebLogicServerName();
    }

    @Override
    public String getHostName() {
        return Utilities.getHostName();
    }

    @Override
    public synchronized int increment() {
        counter++;
        return counter.intValue();
    }

    @Override
    public int value() {
        return counter.intValue();
    }

    // ================================================================ //
    // ========================== Private Methods ===================== //
    // ================================================================ //    
    
    /**
     * Called on activate to verify binding is available
     */
    private void quickTest() {
        try {
            Environment env = new Environment();
            Context ctx = env.getContext();
            DemoSingleton singleton =
                    (DemoSingleton) PortableRemoteObject.narrow(ctx.lookup(DemoSingleton.JNDI_NAME), DemoSingleton.class);
            logger.info("quickTest: " + singleton.singletonLocation());
        } catch (Exception ne) {
            logger.log(Logger.SEVERE, ne);
            logger.severe("Error: %s" + ne.getMessage());
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Deploying and Configuring the Singleton&lt;/b&gt;&lt;br /&gt;
To deploy the singleton in standalone mode, compile and package the classes into a JAR file and put the JAR file into the WebLogic Server classpath. &lt;b&gt; Note&lt;/b&gt; this needs to be done on each physical machine where the managed servers in the cluster run.&lt;br /&gt;
&lt;br /&gt;
You configure a singleton service instance for cluster using the WebLogic Server console.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-yNpsGue7R2M/T1BQG1E0tYI/AAAAAAAAAWc/aLlgmd1KEAU/s1600/Screen%2Bshot%2B2012-03-02%2Bat%2B3.12.00%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://2.bp.blogspot.com/-yNpsGue7R2M/T1BQG1E0tYI/AAAAAAAAAWc/aLlgmd1KEAU/s400/Screen%2Bshot%2B2012-03-02%2Bat%2B3.12.00%2BPM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This ultimately writes an entry in the domain's config.xml as such:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;&amp;lt;singleton-service&amp;gt;
  &amp;lt;name&amp;gt;DemoSingleton&amp;lt;/name&amp;gt;
  &amp;lt;user-preferred-server&amp;gt;Mike&amp;lt;/user-preferred-server&amp;gt;
  &amp;lt;class-name&amp;gt;sab.demo.wlssingletoninstance.DemoSingletonImpl&amp;lt;/class-name&amp;gt;
  &amp;lt;cluster&amp;gt;Tingles&amp;lt;/cluster&amp;gt;
&amp;lt;/singleton-service&amp;gt;
&lt;/pre&gt;
When the preferred managed server starts, the singleton service will be instantiated.
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;&amp;lt;Mar 2, 2012 3:25:32 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;Cluster&amp;gt; &amp;lt;BEA-000102&amp;gt; &amp;lt;Joining cluster Tingles on 239.192.0.0:7001&amp;gt; 
&amp;lt;Mar 2, 2012 3:25:33 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000365&amp;gt; &amp;lt;Server state changed to RUNNING.&amp;gt; 
&amp;lt;Mar 2, 2012 3:25:33 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000360&amp;gt; &amp;lt;The server started in RUNNING mode.&amp;gt; 
[] INFO Activate on Steve-Button-MacBook-Pro.local Mike
[] INFO Executed bind for: DemoSingleton
[] INFO Looking up JNDI_NAME returns: sab.demo.wlssingletoninstance.DemoSingletonImpl
[] INFO quickTest: Steve-Button-MacBook-Pro.local Mike
&lt;/pre&gt;
Performing a manual migration using the console, the singleton gets deactivated on the current server and activated on another.

&lt;br /&gt;
&lt;pre class="prettyprint"&gt;[] INFO Deactivate on Steve-Button-MacBook-Pro.local Mike
[] INFO Executed unbind for: DemoSingleton

&amp;lt;Mar 2, 2012 3:25:34 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000360&amp;gt; &amp;lt;The server started in RUNNING mode.&amp;gt; 
[] INFO Activate on Steve-Button-MacBook-Pro.local James
[] INFO Executed bind for: DemoSingleton
[] INFO Looking up JNDI_NAME returns: sab.demo.wlssingletoninstance.DemoSingletonImpl
[] INFO quickTest: Steve-Button-MacBook-Pro.local James
&lt;/pre&gt;
&lt;b&gt;Using the Singleton&lt;/b&gt;&lt;br /&gt;
Applications wishing to use the singleton service then need to look it up from the cluster-wide JNDI tree, narrow it to singleton service type and invoke it's methods as needed.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;  private DemoSingleton getSingleton() throws ClassCastException, NamingException {
    Context ctx = getInitialContext()
    DemoSingleton singleton = (DemoSingleton) PortableRemoteObject.narrow(ctx.lookup(DemoSingleton.JNDI_NAME), DemoSingleton.class);
    return singleton;
}
&lt;/pre&gt;
Using this in a servlet for example, you can see how the servlet running on the managed server Mike is able to access the singleton service running on managed server James.
&lt;p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-09F8cG-ksXA/T1BXXFrSLuI/AAAAAAAAAWo/jqliKFiHYeY/s1600/Screen%2Bshot%2B2012-03-02%2Bat%2B3.38.57%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://1.bp.blogspot.com/-09F8cG-ksXA/T1BXXFrSLuI/AAAAAAAAAWo/jqliKFiHYeY/s400/Screen%2Bshot%2B2012-03-02%2Bat%2B3.38.57%2BPM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;
When the singleton service is migrated, the servlet then seamlessly accesses it on the other managed server, where it is now co-located in this specific example below.
&lt;p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-sMt7kVVJa88/T1BX1PoEwaI/AAAAAAAAAW0/pouJSKXHFwQ/s1600/Screen%2Bshot%2B2012-03-02%2Bat%2B3.41.05%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://3.bp.blogspot.com/-sMt7kVVJa88/T1BX1PoEwaI/AAAAAAAAAW0/pouJSKXHFwQ/s400/Screen%2Bshot%2B2012-03-02%2Bat%2B3.41.05%2BPM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;
This is obviously a fairly simple example but it should highlight the basic requirements and method to create an cluster wide singleton that can be used by applications.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=_7wVUfPGTOk:rIVxVHLBUc8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/_7wVUfPGTOk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/1533041897922144311/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=1533041897922144311&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/1533041897922144311?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/1533041897922144311?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/_7wVUfPGTOk/weblogic-server-singleton-services.html" title="WebLogic Server Singleton Services" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-yNpsGue7R2M/T1BQG1E0tYI/AAAAAAAAAWc/aLlgmd1KEAU/s72-c/Screen%2Bshot%2B2012-03-02%2Bat%2B3.12.00%2BPM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/03/weblogic-server-singleton-services.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHQXYzcSp7ImA9WhVTFUU.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-1239328860973542803</id><published>2012-03-01T16:30:00.000+10:30</published><updated>2012-03-01T16:30:30.889+10:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-01T16:30:30.889+10:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java 7" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="jax-rs" /><category scheme="http://www.blogger.com/atom/ns#" term="glassfish" /><title>WebLogic Server 11g (10.3.6) Documentation</title><content type="html">The OTN documentation pages don't appear yet to have a link to the WLS 10.3.6 documentation set.&lt;br /&gt;
&lt;br /&gt;
If you are looking for it in the interim you can find it here:&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=13556721"&gt;http://docs.oracle.com/cd/E23943_01/wls.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
While this is predominantly a patchset, there are a number of new features listed in the &lt;a href="http://docs.oracle.com/cd/E23943_01/web.1111/e13852/toc.htm"&gt;What's New in WebLogic Server&lt;/a&gt; document.&lt;br /&gt;
&lt;br /&gt;
Some worthy examples are: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/middleware/downloads/fmw-11gr1certmatrix.xls"&gt;Java SE 7 support&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Storing transaction logs (&lt;a href="http://docs.oracle.com/cd/E23943_01/web.1111/e13701/store.htm#CNFGD290"&gt;TLOG&lt;/a&gt;) in a database&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.oracle.com/cd/E23943_01/web.1111/e13712/glassfish_dd.htm#WBAPP661"&gt;GlassFish web deployment descriptor&lt;/a&gt; support&lt;/li&gt;
&lt;li&gt;Enable RESTful Web Services with &lt;a href="http://www.oracle.com/pls/topic/lookup?ctx=E23943-01&amp;amp;id=WSADV572"&gt;JAX-RS and Jersey 1.9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DataSource changes to support &lt;a href="http://docs.oracle.com/cd/E23943_01/web.1111/e13737/ds_oracledriver.htm#JDBCA543"&gt;setting credentials on a connection&lt;/a&gt; and using &lt;a href="http://docs.oracle.com/cd/E23943_01/web.1111/e13737/ds_oracledriver.htm#JDBCA522"&gt;proxy connections&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.oracle.com/cd/E23943_01/web.1111/e13737/config.htm#JDBCA518"&gt;Application scoped JDBC drivers&lt;/a&gt;, where a JDBC driver can be deployed within an EAR file &lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=wYNWBwW2VZo:RnbLT8dVzYo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/wYNWBwW2VZo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/1239328860973542803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=1239328860973542803&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/1239328860973542803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/1239328860973542803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/wYNWBwW2VZo/weblogic-server-11g-1036-documentation.html" title="WebLogic Server 11g (10.3.6) Documentation" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/03/weblogic-server-11g-1036-documentation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEHRn08fSp7ImA9WhVTFUU.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-7364294539842042511</id><published>2012-03-01T16:13:00.000+10:30</published><updated>2012-03-01T16:13:57.375+10:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-01T16:13:57.375+10:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="classloading" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><title>Web application filtering classloader documentation update</title><content type="html">Following a posting on here last year that described using the filtering classloader within a web application, several folks commented that it wasn't described in the documentation.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;WebLogic Server 12c (12.1.1.0)&lt;/b&gt; documentation shows the prefer-application-packages and prefer-application-resources elements as being available in the weblogic.xml file.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://docs.oracle.com/cd/E24329_01/web.1211/e21049/weblogic_xml.htm#autoId24"&gt;http://docs.oracle.com/cd/E24329_01/web.1211/e21049/weblogic_xml.htm#autoId24&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;WebLogic Server 11g (10.3.6.0)&lt;/b&gt; documentation should also include this when it gets pushed out to OTN.&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;
&lt;br/&gt;
&lt;pre&gt;
&lt;code&gt;&amp;lt;wls:weblogic-web-app&amp;gt;
     &amp;lt;wls:weblogic-version&amp;gt;12.1.1&amp;lt;/wls:weblogic-version&amp;gt;
     &amp;lt;wls:context-root&amp;gt;FilterWeb&amp;lt;/wls:context-root&amp;gt;
     &amp;lt;wls:container-descriptor&amp;gt;
         &amp;lt;wls:prefer-application-packages&amp;gt;
             &amp;lt;wls:package-name&amp;gt;com.oracle.foo&amp;lt;/wls:package-name&amp;gt;
         &amp;lt;/wls:prefer-application-packages&amp;gt;
     &amp;lt;/wls:container-descriptor&amp;gt;
&amp;lt;/wls:weblogic-web-app&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;code&gt;
&lt;/code&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=SaSC0W2CubU:xziSsZqzWeM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/SaSC0W2CubU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/7364294539842042511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=7364294539842042511&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7364294539842042511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7364294539842042511?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/SaSC0W2CubU/web-application-filtering-classloader.html" title="Web application filtering classloader documentation update" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://buttso.blogspot.com/2012/03/web-application-filtering-classloader.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYGQnk5cSp7ImA9WhRQFks.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-4031653079409608191</id><published>2011-12-12T14:42:00.000+10:30</published><updated>2011-12-12T14:42:03.729+10:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T14:42:03.729+10:30</app:edited><title>WebLogic Server 12c - Identifying versions of modules, libraries, frameworks</title><content type="html">&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
Now that WebLogic Server 12c has been released, it's interesting to look at the various libraries, modules and open-source frameworks it uses.&lt;br /&gt;
&lt;br /&gt;
One approach to doing this is to use the wls-cat utility to search for a known class from the framework, module or open-source framework you are interested in looking at, and observing where the class is loaded from and the corresponding library version.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;JavaServer Faces&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
One important item to note here is that as of the WebLogic Server 12c release, the JSF implementation has been added directly to the WebLogic Server classpath.&amp;nbsp; This is a change from the WebLogic Server 11g release where the JSF implementation was provided as an optional shared-library, which needed to be deployed in order for applications to use JSF.&amp;nbsp; With WebLogic Server 12c, JSF is now an integral part of the server and can be used without the necessity of deploying and referencing the shared-library.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;javax.faces.webapp.FacesServlet: &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="1" src="http://2.bp.blogspot.com/-m3y33Y0_pks/TuV308ldGdI/AAAAAAAAAVc/rDIUoSKCVC8/s1600/Screen+shot+2011-12-12+at+1.59.04+PM.png" style="border: 1px solid black;" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;com.sun.faces.facelets.Facelet:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4ZUVp5-5WQs/TuV3tMoImdI/AAAAAAAAAVU/SBNAkKOg5mc/s1600/Screen+shot+2011-12-12+at+2.07.02+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="1" src="http://3.bp.blogspot.com/-4ZUVp5-5WQs/TuV3tMoImdI/AAAAAAAAAVU/SBNAkKOg5mc/s1600/Screen+shot+2011-12-12+at+2.07.02+PM.png" style="border: 1px solid black;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;Using:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;JSF 2.1&lt;/li&gt;
&lt;li&gt;Mojarra 2.1.5&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Java Persistence API / EclipseLink&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;javax.persistence.Entity:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-9XchSscp2M0/TuV6vPrHJlI/AAAAAAAAAV8/BLFXd-1I4m8/s1600/Screen+shot+2011-12-12+at+2.21.50+PM.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-9XchSscp2M0/TuV6vPrHJlI/AAAAAAAAAV8/BLFXd-1I4m8/s1600/Screen+shot+2011-12-12+at+2.21.50+PM.png" style="border: 1px solid black;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.eclipse.persistence.jpa.JpaEntityManager:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-kCA1CiodyxM/TuV4ioKUPeI/AAAAAAAAAVk/nbR-XFx-5pg/s1600/Screen+shot+2011-12-12+at+2.06.45+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="1" src="http://4.bp.blogspot.com/-kCA1CiodyxM/TuV4ioKUPeI/AAAAAAAAAVk/nbR-XFx-5pg/s1600/Screen+shot+2011-12-12+at+2.06.45+PM.png" style="border: 1px solid black;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;Using:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;JPA 2.0&lt;/li&gt;
&lt;li&gt;EclipseLink 2.3&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Context and Dependency Injection/Weld&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;javax.enterprise.inject.Model:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-lmvehSC7Eas/TuV8B7k4FeI/AAAAAAAAAWE/6D0c9eoPP-E/s1600/Screen+shot+2011-12-12+at+2.28.32+PM.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-lmvehSC7Eas/TuV8B7k4FeI/AAAAAAAAAWE/6D0c9eoPP-E/s1600/Screen+shot+2011-12-12+at+2.28.32+PM.png" style="border: 1px solid black;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.jboss.weld.Container:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-FnZm2JCbfUU/TuV5R5mwjpI/AAAAAAAAAVs/GCBZSVd1iuI/s1600/Screen+shot+2011-12-12+at+2.07.50+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-FnZm2JCbfUU/TuV5R5mwjpI/AAAAAAAAAVs/GCBZSVd1iuI/s1600/Screen+shot+2011-12-12+at+2.07.50+PM.png" style="border: 1px solid black;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;Using:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;CDI 1.0&lt;/li&gt;
&lt;li&gt;Weld 1.1.3-SP1&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;SLF4J&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;org.slf4j.Logger:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-UmZagf-EPVs/TuV5q4o1gjI/AAAAAAAAAV0/1WPLzTLF4jU/s1600/Screen+shot+2011-12-12+at+2.07.22+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-UmZagf-EPVs/TuV5q4o1gjI/AAAAAAAAAV0/1WPLzTLF4jU/s1600/Screen+shot+2011-12-12+at+2.07.22+PM.png" style="border: 1px solid black;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;Using:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;SLF4J 1.6.1&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=Fke2hqK4Cec:tGbLLc4gQFU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/Fke2hqK4Cec" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/4031653079409608191/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=4031653079409608191&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4031653079409608191?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4031653079409608191?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/Fke2hqK4Cec/weblogic-server-12c-identifying.html" title="WebLogic Server 12c - Identifying versions of modules, libraries, frameworks" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-m3y33Y0_pks/TuV308ldGdI/AAAAAAAAAVc/rDIUoSKCVC8/s72-c/Screen+shot+2011-12-12+at+1.59.04+PM.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/12/weblogic-server-12c-identifying.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8HR3c-eSp7ImA9WhRQFkg.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-7187222536454221950</id><published>2011-12-12T10:42:00.001+10:30</published><updated>2011-12-12T13:30:36.951+10:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T13:30:36.951+10:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Maven" /><category scheme="http://www.blogger.com/atom/ns#" term="12c" /><title>WebLogic Server 12c - Maven Usage Notes</title><content type="html">&lt;style&gt;
&lt;!--
 /* Font Definitions */
@font-face
 {font-family:Calibri;
 panose-1:2 15 5 2 2 2 4 3 2 4;
 mso-font-charset:0;
 mso-generic-font-family:auto;
 mso-font-pitch:variable;
 mso-font-signature:3 0 0 0 1 0;}
@font-face
 {font-family:Cambria;
 panose-1:2 4 5 3 5 4 6 3 2 4;
 mso-font-charset:0;
 mso-generic-font-family:auto;
 mso-font-pitch:variable;
 mso-font-signature:3 0 0 0 1 0;}
@font-face
 {font-family:"Lucida Grande";
 mso-font-charset:0;
 mso-generic-font-family:auto;
 mso-font-pitch:variable;
 mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-parent:"";
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
h1
 {mso-style-link:"Heading 1 Char";
 mso-style-next:Normal;
 margin-top:24.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 mso-outline-level:1;
 font-size:16.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#345A8A;
 mso-font-kerning:0pt;
 mso-ansi-language:EN-US;
 mso-bidi-font-weight:bold;}
h2
 {mso-style-link:"Heading 2 Char";
 mso-style-next:Normal;
 margin-top:10.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 mso-outline-level:2;
 font-size:13.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#4F81BD;
 mso-ansi-language:EN-US;
 mso-bidi-font-weight:bold;}
h3
 {mso-style-link:"Heading 3 Char";
 mso-style-next:Normal;
 margin-top:10.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 mso-outline-level:3;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#4F81BD;
 mso-ansi-language:EN-US;
 mso-bidi-font-weight:bold;}
h4
 {mso-style-noshow:yes;
 mso-style-link:"Heading 4 Char";
 mso-style-next:Normal;
 margin-top:10.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 mso-outline-level:4;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#4F81BD;
 mso-ansi-language:EN-US;
 mso-bidi-font-weight:bold;
 font-style:italic;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:6.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 color:#548DD4;
 mso-ansi-language:EN-US;
 font-weight:bold;
 mso-bidi-font-weight:normal;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:12.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;
 font-style:italic;
 mso-bidi-font-style:normal;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:24.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoToc5, li.MsoToc5, div.MsoToc5
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoToc6, li.MsoToc6, div.MsoToc6
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:48.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoToc7, li.MsoToc7, div.MsoToc7
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:60.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoToc8, li.MsoToc8, div.MsoToc8
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:72.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoToc9, li.MsoToc9, div.MsoToc9
 {mso-style-update:auto;
 mso-style-next:Normal;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:84.0pt;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
a:link, span.MsoHyperlink
 {mso-style-noshow:yes;
 color:blue;
 text-decoration:underline;
 text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
 {mso-style-noshow:yes;
 color:purple;
 text-decoration:underline;
 text-underline:single;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
 {mso-style-noshow:yes;
 mso-style-link:"Document Map Char";
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:"Lucida Grande";
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:"Lucida Grande";
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
 {margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:minor-bidi;
 mso-ansi-language:EN-US;}
p.MsoTocHeading, li.MsoTocHeading, div.MsoTocHeading
 {mso-style-parent:"Heading 1";
 mso-style-next:Normal;
 margin-top:24.0pt;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:0cm;
 margin-bottom:.0001pt;
 line-height:115%;
 mso-pagination:widow-orphan lines-together;
 page-break-after:avoid;
 font-size:14.0pt;
 font-family:"Times New Roman";
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#365F91;
 mso-ansi-language:EN-US;
 font-weight:bold;}
span.Heading1Char
 {mso-style-name:"Heading 1 Char";
 mso-style-locked:yes;
 mso-style-link:"Heading 1";
 mso-ansi-font-size:16.0pt;
 mso-bidi-font-size:16.0pt;
 font-family:Calibri;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#345A8A;
 font-weight:bold;}
span.Heading2Char
 {mso-style-name:"Heading 2 Char";
 mso-style-locked:yes;
 mso-style-link:"Heading 2";
 mso-ansi-font-size:13.0pt;
 mso-bidi-font-size:13.0pt;
 font-family:Calibri;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#4F81BD;
 font-weight:bold;}
span.Heading3Char
 {mso-style-name:"Heading 3 Char";
 mso-style-locked:yes;
 mso-style-link:"Heading 3";
 font-family:Calibri;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#4F81BD;
 font-weight:bold;}
span.Heading4Char
 {mso-style-name:"Heading 4 Char";
 mso-style-noshow:yes;
 mso-style-locked:yes;
 mso-style-link:"Heading 4";
 font-family:Calibri;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:major-latin;
 mso-fareast-font-family:"Times New Roman";
 mso-fareast-theme-font:major-fareast;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:major-latin;
 mso-bidi-font-family:"Times New Roman";
 mso-bidi-theme-font:major-bidi;
 color:#4F81BD;
 font-weight:bold;
 font-style:italic;}
span.DocumentMapChar
 {mso-style-name:"Document Map Char";
 mso-style-noshow:yes;
 mso-style-locked:yes;
 mso-style-link:"Document Map";
 font-family:"Lucida Grande";
 mso-ascii-font-family:"Lucida Grande";
 mso-hansi-font-family:"Lucida Grande";}
@page Section1
 {size:612.0pt 792.0pt;
 margin:72.0pt 90.0pt 72.0pt 90.0pt;
 mso-header-margin:36.0pt;
 mso-footer-margin:36.0pt;
 mso-paper-source:0;}
div.Section1
 {page:Section1;}
 /* List Definitions */
@list l0
 {mso-list-id:713238905;
 mso-list-type:hybrid;
 mso-list-template-ids:-1250103180 67698711 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
 {mso-level-number-format:alpha-lower;
 mso-level-text:"%1\)";
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;}
ol
 {margin-bottom:0cm;}
ul
 {margin-bottom:0cm;}
--&gt;
&lt;/style&gt;       &lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;b&gt;Note: apologies for the formatting, this posting was a  cut and paste from a .docx document and thus has all the styles  inlined.&amp;nbsp;&amp;nbsp; In the interests of time, I thought it was better to just post it as-is and make it available, rather than try and reformat it.&amp;nbsp; Which I know I'd keep pushing off  until eternity.&amp;nbsp; &lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;This document provides a short overview of installing, configuring and using the new wls-maven-plugin provided in WebLogic Server 12c. &lt;/div&gt;&lt;h2 style="color: #0b5394;"&gt;&lt;span style="color: #0b5394;"&gt;Convention Over Configuration&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;With the wls-maven-plugin:12.1.1.0 we have followed the theme of Maven and used a convention-over-configuration approach.&amp;nbsp; This means that for a set of the commonly used configuration elements, we have adopted a sensible, consistent set of default values that can be used across all of the goals.&amp;nbsp; This reduces the amount of configuration necessary to use the plugin and helps achieve uniform goal executions, even in different environments.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The common configuration elements are:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;middlewareHome&lt;/b&gt;: ${project.basedir}/Oracle/Software&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;weblogicHome&lt;/b&gt;: “wlserver” or “wlserver_12.1”, depending on the install type &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;domainHome&lt;/b&gt;: ${project.basedir}/Oracle/Domains&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;source:&lt;/b&gt; &lt;span lang="EN-US"&gt;${project.build.directory}/${project.build.finalName}.${project.packaging}&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;adminurl&lt;/b&gt;: t3://localhost:7001&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;While these configuration parameters have default values, they can all be overridden in a pom.xml file or on the command line as need be.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;However by having them be sensible defaults, they can be left out of a configuration section and used consistently across all of the goals.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;As an example, it’s possible to issue the following commands that all use the same WLS installation and domain without specifying any repetitive values:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;$ wls:install -&lt;br /&gt;
DartifactLocation=/Users/sbutton/Downloads/wls/wls_1211/wls1211_dev.zip&lt;/div&gt;&lt;div class="MsoNormal"&gt;$ wls:create-domain –Duser=weblogic –Dpassword=welcome1&lt;/div&gt;&lt;div class="MsoNormal"&gt;$ wls:start-server&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #0b5394;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;Installing the Plugin&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;For WLS 12c, the wls-maven-plugin is provided as a pre-built jar file and the &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;accompanying pom.xml file is also provided as an easily accessible file in the same directory.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;$MW_HOME/wlserver/server/lib/wls-maven-plugin.jar&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;$MW_HOME/wlserver/server/lib/pom.xml&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The wls-maven-plugin is installed using the following commands:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;$ cd $MW_HOME/wlserver/server/lib&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;$ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn install&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;$ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn install:install-file –Dfile=wls-maven-plugin.jar –DpomFile=pom.xml&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The default pom.xml file now has the required setting to enable the use of the “wls” goal prefix enabled by default.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;To use the “wls” goalPrefix, you will need to edit the Maven settings.xml file and add the following entry:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;lt;pluginGroups&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pluginGroup&amp;gt;com.oracle.weblogic&amp;lt;/pluginGroup&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;/pluginGroups&amp;gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Once you have installed the plugin, you can very simply validate it using the wls:help goal. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;$ mvn wls:help&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;This goal does not require a project or pom.xml and will display the list of goals available in the wls-maven-plugin if the plugin has been successfully installed.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #0b5394;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;Basic Configuration of Plugin&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Below is an example of a basic Java EE 6 Web Application pom.xml file that enables the use of the wls-maven-plugin.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;demo.sab&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;maven-demo&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;1.0-SNAPSHOT&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;packaging&amp;gt;war&amp;lt;/packaging&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;maven-demo&amp;lt;/name&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;properties&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endorsed.dir&amp;gt;${project.build.directory}/endorsed&amp;lt;/endorsed.dir&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;project.build.sourceEncoding&amp;gt;UTF-8&amp;lt;/project.build.sourceEncoding&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/properties&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dependencies&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;javax&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;javaee-web-api&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;6.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependencies&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;build&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;plugins&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- WebLogic Server 12c Maven Plugin --&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;&amp;lt;plugin&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;  &lt;/b&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;com.oracle.weblogic&amp;lt;/groupId&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;  &lt;/b&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;wls-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;  &lt;/b&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;12.1.1.0&amp;lt;/version&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;  &lt;/b&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/plugins&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/build&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;/project&amp;gt;&lt;/div&gt;&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;Install&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;This goal installs WLS into a local directory to enable it to be used execute the other goals, as well as a installation to create a WLS domain that can be used to deploy and test the application represented as the Maven project.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;To install, you need a distribution to install.&amp;nbsp; This is specified using the &amp;lt;artifactLocation&amp;gt; configuration element in the wls-maven-plugin section of the pom.xml, or specify it using the –DartifactLocation property when Maven is invoked.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The target directory for the installation is specified using the optional weblogicHome configuration element.&amp;nbsp; This is set to ${basedir}/Oracle/Software by default.&amp;nbsp; Specifying a &amp;lt;middlewareHome&amp;gt; value will direct the install to be performed in the specified location.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;I will focus on the zip distribution since it reflects a development usage model.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The location of the zip distribution can be specified as one of the following:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span lang="EN-US"&gt;a)&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;local file reference&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;For a local file reference, you specify the path on the local file system&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;!-- WebLogic Server 12c Maven Plugin --&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;com.oracle.weblogic&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;wls-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;12.1.1.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactLocation&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/Users/sbutton/Downloads/wls/wls_1211/wls1211_dev.zip&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/artifactLocation&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The execution of the wls:install goal is shown below.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ mvn wls:install&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Scanning for projects...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Building maven-demo 1.0-SNAPSHOT&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:install (default-cli) @ maven-demo ---&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ++====================================================================++&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: install&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ++====================================================================++&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Installing /Users/sbutton/Downloads/wls/wls_1211/wls1211_dev.zip into /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Software&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Installing the product, this may take some time.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Executing: [cmd:[/bin/bash, -c, chmod +x ./configure.sh; ./configure.sh]]&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Process being executed, waiting for completion.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] **************************************************&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] WebLogic Server 12c (12.1.1.0) Zip Configuration&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] MW_HOME:&amp;nbsp;&amp;nbsp; /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Software&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] JAVA_HOME: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] **************************************************&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] BUILD SUCCESSFUL&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] Total time: 0 seconds&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [configure script] exit code: 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] BUILD SUCCESS&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Total time: 1:53.210s&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Finished at: Wed Nov 23 15:46:53 CST 2011&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Final Memory: 3M/81M&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;b)&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;URL reference&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;!-- WebLogic Server 12c Maven Plugin --&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;com.oracle.weblogic&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;wls-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;12.1.1.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactLocation&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;http://test.us.oracle.com:7001/downloads/wls1211_dev.zip&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/artifactLocation&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The execution of the wls:install goal is shown below.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:install&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0-SNAPSHOT&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:install (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: install&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;b&gt;Installing &lt;/b&gt;&lt;span lang="EN-US"&gt;&lt;b&gt;http://test.us.oracle.com:7001/downloads/wls1211_dev.zip&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt; into /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Software&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Attempt to download artifact from maven repo failed - Artifact not found&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Attempt to download the weblogic server instance directly from url.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Downloading the file ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;...&lt;/div&gt;&lt;div class="MsoNormal"&gt;...&lt;/div&gt;&lt;div class="MsoNormal"&gt;...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] BUILD SUCCESSFUL&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Total time: 0 seconds&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [configure script] exit code: 0&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 4:23.710s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 15:53:21 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 3M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;c)&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;Maven Artifact&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Here the distribution is retrieved from the local Maven repository itself.&amp;nbsp; This means it needs to have been installed into the repository or pulled over from a remote repository at some point.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;To install wls1211-dev.zip into Maven repository the following type of command can be used:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;sbutton:~ $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn install:install-file -Dfile=wls1211_dev.zip &lt;br /&gt;
-DgroupId=com.oracle.weblogic -DartifactId=wls-dev &lt;br /&gt;
-Dpackaging=zip -Dversion=12.1.1.0&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Scanning for projects...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Building Maven Stub Project (No POM) 1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] --- maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-pom ---&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] &lt;b style="mso-bidi-font-weight: normal;"&gt;Installing /Users/sbutton/Downloads/wls/wls_1211/wls1211_dev.zip to /Users/sbutton/.m2/repository/com/oracle/weblogic/wls-dev/12.1.1.0/wls-dev-12.1.1.0.zip&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Installing /var/folders/cL/cLTyZKXjGgmQhEpoV+U-DE+++TI/-Tmp-/mvninstall7575420374983698784.pom to /Users/sbutton/.m2/repository/com/oracle/weblogic/wls-dev/12.1.1.0/wls-dev-12.1.1.0.pom&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] BUILD SUCCESS&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Total time: 11.089s&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Finished at: Wed Nov 23 15:30:17 CST 2011&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Final Memory: 3M/81M&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;This installs wls1211-dev.zip as a Maven artifact with the following coordinate:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;com.oracle.weblogic:wls-dev:zip:12.1.1.0&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;To use this Maven artifact as the distribution to install, the plugin looks like the below.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;!-- WebLogic Server 12c Maven Plugin --&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;com.oracle.weblogic&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;wls-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;12.1.1.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactLocation&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; com.oracle.weblogic:wls-dev:zip:12.1.1.0&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b style="mso-bidi-font-weight: normal;"&gt;&amp;lt;/artifactLocation&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The execution of the wls:install goal is shown below.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:install&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Scanning for projects...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Building maven-demo 1.0-SNAPSHOT&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:install (default-cli) @ maven-demo ---&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ++====================================================================++&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: install&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;++&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ++====================================================================++&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] &lt;b style="mso-bidi-font-weight: normal;"&gt;Installing com.oracle.weblogic:wls-dev:zip:12.1.1.0 into /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Software&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Installing the product, this may take some time.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Executing: [cmd:[/bin/bash, -c, chmod +x ./configure.sh; ./configure.sh]]&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Process being executed, waiting for completion.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] **************************************************&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] WebLogic Server 12c (12.1.1.0) Zip Configuration&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] MW_HOME:&amp;nbsp;&amp;nbsp; /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Software&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] JAVA_HOME: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] **************************************************&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] Your environment has been set.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] BUILD SUCCESSFUL&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [exec] Total time: 0 seconds&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] [configure script] exit code: 0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] BUILD SUCCESS&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Total time: 1:57.549s&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Finished at: Wed Nov 23 15:35:32 CST 2011&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] Final Memory: 4M/81M&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;[INFO] ------------------------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;Unless the &amp;lt;middlewareHome&amp;gt; configuration paramter is specified, the installation is performed in the ${basedir}/Oracle/Software directory.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;ls -l&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;total 8&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;drwxr-xr-x&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 102 23 Nov 15:44 &lt;b style="mso-bidi-font-weight: normal;"&gt;Oracle&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp; 3597 23 Nov 15:43 pom.xml&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;drwxr-xr-x&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 102 23 Nov 15:03 src&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;ls -l Oracle/Software/&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;total 64&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 5808 23 Nov 15:45 README.txt&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 3064 23 Nov 15:45 configure.cmd&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rwxr-xr-x&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 2857 23 Nov 15:45 configure.sh&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 3189 23 Nov 15:45 configure.xml&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp; 133 23 Nov 15:45 domain-registry.xml&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;drwxr-xr-x&amp;nbsp; 508 sbutton&amp;nbsp; staff&amp;nbsp; 17272 23 Nov 15:46 modules&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 1138 23 Nov 15:45 registry.template&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp; 1320 23 Nov 15:46 registry.xml&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp; 102 23 Nov 15:45 utils&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 sbutton&amp;nbsp; staff&amp;nbsp;&amp;nbsp;&amp;nbsp; 238 23 Nov 15:46 wlserver&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2&gt;Create-Domain&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;This goal creates a standard WLS domain from the specific WLS installation.&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The location of the domain is specified using the optional &amp;lt;domainHome&amp;gt; configuration element.&amp;nbsp; By default &amp;lt;domainHome&amp;gt; is set to ${basedir}/Oracle/Domains so it will be created in an Oracle/Domains subdirectory of the root directory of the Maven project.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The WLS installation to be used is specified using the optional &amp;lt;middlewareHome&amp;gt; configuration element.&lt;span lang="EN-US"&gt;&amp;nbsp; This is set to ${basedir}/Oracle/Software by default, so if the default location has been used to execute the install goal, it can be left out of this goal.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;To create a domain, a user and password are required.&amp;nbsp; These can be specified as configuration parameters using the &amp;lt;user&amp;gt; and &amp;lt;password&amp;gt; properties or they can be specified on the command line.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;!-- WebLogic Server 12c Maven Plugin --&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;com.oracle.weblogic&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;wls-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;12.1.1.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactLocation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; com.oracle.weblogic:wls-dev:zip:12.1.1.0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/artifactLocation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;user&amp;gt;weblogic&amp;lt;/user&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;password&amp;gt;welcome1&amp;lt;/user&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;The execution of the wls:install goal is shown below.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:create-domain&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0-SNAPSHOT&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:create-domain (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: create-domain&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Domain creation script: &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;readTemplate('/Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Software/wlserver/common/templates/domains/wls.jar')&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;cd('/Security/base_domain/User/weblogic')&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;set('Name', 'weblogic')&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;set('Password', '***')&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;writeDomain('/Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Domains/mydomain')&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 39.345s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 16:01:13 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 24M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Unless the &amp;lt;domainHome&amp;gt; configuration property is specified, the domain will be created in the ${basedir}/Oracle/Domains directory of the project.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;ls -l Oracle/Domains/mydomain&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;total 16&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp; 102 23 Nov 16:01 autodeploy&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp; 10 sbutton&amp;nbsp; staff&amp;nbsp; 340 23 Nov 16:01 bin&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp; 10 sbutton&amp;nbsp; staff&amp;nbsp; 340 23 Nov 16:01 config&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp; 102 23 Nov 16:01 console-ext&lt;/div&gt;&lt;div class="MsoNormal"&gt;-rw-r--r--&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp; 462 23 Nov 16:01 fileRealm.properties&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 7 sbutton&amp;nbsp; staff&amp;nbsp; 238 23 Nov 16:01 init-info&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp; 102 23 Nov 16:01 lib&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 6 sbutton&amp;nbsp; staff&amp;nbsp; 204 23 Nov 16:01 security&lt;/div&gt;&lt;div class="MsoNormal"&gt;drwxr-xr-x&amp;nbsp;&amp;nbsp; 3 sbutton&amp;nbsp; staff&amp;nbsp; 102 23 Nov 16:01 servers&lt;/div&gt;&lt;div class="MsoNormal"&gt;-rwxr-x---&amp;nbsp;&amp;nbsp; 1 sbutton&amp;nbsp; staff&amp;nbsp; 293 23 Nov 16:01 startWebLogic.sh &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=13556721&amp;amp;postID=7187222536454221950&amp;amp;from=pencil" name="_Toc185052870" style="color: #0b5394;"&gt;Start-Server&lt;/a&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;This goal executes a startWebLogic command on a given domain, starting the WebLogic Server instance for use.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;This goal also uses the &amp;lt;middlewareHome&amp;gt; and &amp;lt;domainHome&amp;gt; configuration elements to specify the location of the WLS installation and domain to use.&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;If you have followed the convention-over-configuration approach and adopted the default values, these configuration elements do not need to be specified.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;If you have installed WLS or created a domain in a different location, you must specify the location using the &amp;lt;middlewareHome&amp;gt; and &amp;lt;domainHome&amp;gt; configuration elements in the pom.xml or specify them as parameters on the command line.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Using the convention-over-configuration approach, the default domain ${basedir}/Oracle/Domains/mydomain using the WLS installation in ${basedir}/Oracle/Software can be started as shown below.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:start-server&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0-SNAPSHOT&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:start-server (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: start-server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;.[INFO] &lt;b style="mso-bidi-font-weight: normal;"&gt;Starting server in domain /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Domains/mydomain&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Check stdout file for details: /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Domains/mydomain/server-2388282492279558044.out&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Process being executed, waiting for completion.&lt;/div&gt;&lt;div class="MsoNormal"&gt;.........&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Server started successful&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 9.137s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 16:23:07 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 4M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;Deploy&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The deploy goal deploys an application. &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The convention-over-configuration approach uses the defaults available for middlewareHome, adminurl, and the source file to deploy allowing the goal to be executed without any additional configuration.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:deploy&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:deploy (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: deploy&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;weblogic.Deployer invoked with options:&amp;nbsp; -noexit -user weblogic -deploy -source /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/target/maven-demo.war&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;Nov 23, 2011 4:36:51 PM CST&amp;gt; &amp;lt;Info&amp;gt; &amp;lt;J2EE Deployment SPI&amp;gt; &amp;lt;BEA-260121&amp;gt; &amp;lt;Initiating deploy operation for application, maven-demo [archive: /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/target/maven-demo.war], to configured targets.&amp;gt; &lt;/div&gt;&lt;div class="MsoNormal"&gt;Task 0 initiated: [Deployer:149026]deploy application maven-demo on AdminServer.&lt;/div&gt;&lt;div class="MsoNormal"&gt;Task 0 completed: [Deployer:149026]deploy application maven-demo on AdminServer.&lt;/div&gt;&lt;div class="MsoNormal"&gt;Target state: deploy completed on Server AdminServer&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 5.803s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 16:36:52 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 6M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------ &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;Stop-Server&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The stop-server goal stops an executing server using the stopWebLogic script on the specified domain.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ mvn wls:stop-server&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:stop-server (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: stop-server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Stop server in domain: /Users/sbutton/Projects/Java/wls-maven-doc/maven-demo/Oracle/Domains/mydomain&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Process being executed, waiting for completion.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Stopping Weblogic Server...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Initializing WebLogic Scripting Tool (WLST) ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Welcome to WebLogic Server Administration Scripting Shell&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Type help() for help on available commands&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Connecting to t3://localhost:7001 with userid weblogic ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Successfully connected to Admin Server 'AdminServer' that belongs to domain 'mydomain'.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Warning: An insecure protocol was used to connect to the &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] server. To ensure on-the-wire security, the SSL port or &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Admin port should be used instead.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Shutting down the server AdminServer with force=false while connected to AdminServer ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] WLST lost connection to the WebLogic Server that you were &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] connected to, this may happen if the server was shutdown or &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] partitioned. You will have to re-connect to the server once the &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] server is available.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Disconnected from weblogic server: AdminServer&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Disconnected from weblogic server: &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Exiting WebLogic Scripting Tool.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Done&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] [exec] Stopping Derby Server...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 8.921s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 16:41:14 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 4M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;APPC&lt;/span&gt;&lt;a href="http://www.blogger.com/goog_592969835"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;a href="http://www.blogger.com/goog_592969835"&gt;  &lt;/a&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The appc goal executes the WebLogic Server application compiler tool to prepare the application for deployment.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;This benefits from the convention-over-configuration model, allowing it to be executed using the defaults of the project.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;An example of the goal being executed is shown below.&amp;nbsp; Note this example uses the –verbose flag to highlight the activities the appc utility is performing.&amp;nbsp; This is not normally necessary.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:appc -Dverbose&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:appc (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: appc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;Nov 23, 2011 4:43:08 PM CST&amp;gt; &amp;lt;Info&amp;gt; &amp;lt;J2EE&amp;gt; &amp;lt;BEA-160230&amp;gt; &amp;lt;Created working directory: /var/folders/cL/cLTyZKXjGgmQhEpoV+U-DE+++TI/-Tmp-/appcgen_1322028788639_maven-demo.war&amp;gt; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[JspcInvoker]Checking web app for compliance.&lt;/div&gt;&lt;div class="MsoNormal"&gt;[jspc]&amp;nbsp; -webapp specified, searching . for JSPs&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;[jspc] Compiling /index.jsp&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;Nov 23, 2011 4:43:12 PM CST&amp;gt; &amp;lt;Info&amp;gt; &amp;lt;J2EE&amp;gt; &amp;lt;BEA-160220&amp;gt; &amp;lt;Compilation completed successfully.&amp;gt; &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 5.281s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 16:43:12 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 16M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt; &lt;/div&gt;&lt;h2&gt;&lt;span style="color: #0b5394;"&gt;WLST&lt;/span&gt;&lt;/h2&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The WLST goal enables the WebLogic Scripting Tool (WLST) to be used to execute scripts that configure resources or perform other operational actions on a WebLogic Server domain.&amp;nbsp; The WLST used by the wlst Maven goal is the standard environment WebLogic Server WLST environment so all existing scripts should be able to be used.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Benefitting again from the convention-over-configuration, the middlewareHome and domainHome locations do not need to be specified if the defaults are used.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;The WLST goal can execute an external script specified using the &amp;lt;fileName&amp;gt; configuration element or a sequence of WLST calls can be specified within the pom.xml using the &amp;lt;script&amp;gt; configuration element.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;!-- WebLogic Server 12c Maven Plugin --&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;lt;plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;com.oracle.weblogic&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;wls-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;12.1.1.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactLocation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; com.oracle.weblogic:wls-dev:zip:12.1.1.0&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/artifactLocation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;user&amp;gt;weblogic&amp;lt;/user&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;password&amp;gt;welcome1&amp;lt;/user&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filename&amp;gt;create-datasource.py&amp;lt;/fileName&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;An execution of the wlst goal is shown below.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;sbutton:~/Projects/Java/wls-maven-doc/maven-demo $ &lt;b style="mso-bidi-font-weight: normal;"&gt;mvn wls:wlst -DfileName=create-datasource.py &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Scanning for projects...&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Building maven-demo 1.0&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] &lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] --- wls-maven-plugin:12.1.1.0:wlst (default-cli) @ maven-demo ---&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++&amp;nbsp; wls-maven-plugin: wlst&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ++====================================================================++&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;*** Creating DataSource ***&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Connecting to t3://localhost:7001 with userid weblogic ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;Successfully connected to Admin Server 'AdminServer' that belongs to domain 'mydomain'.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Warning: An insecure protocol was used to connect to the &lt;/div&gt;&lt;div class="MsoNormal"&gt;server. To ensure on-the-wire security, the SSL port or &lt;/div&gt;&lt;div class="MsoNormal"&gt;Admin port should be used instead.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Location changed to edit tree. This is a writable tree with &lt;/div&gt;&lt;div class="MsoNormal"&gt;DomainMBean as the root. To make changes you will need to start &lt;/div&gt;&lt;div class="MsoNormal"&gt;an edit session via startEdit(). &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;For more help, use help(edit)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Starting an edit session ...&lt;/div&gt;&lt;div class="MsoNormal"&gt;Started edit session, please be sure to save and activate your &lt;/div&gt;&lt;div class="MsoNormal"&gt;changes once you are done.&lt;/div&gt;&lt;div class="MsoNormal"&gt;Activating all your changes, this may take a while ... &lt;/div&gt;&lt;div class="MsoNormal"&gt;The edit lock associated with this edit session is released &lt;/div&gt;&lt;div class="MsoNormal"&gt;once the activation is completed.&lt;/div&gt;&lt;div class="MsoNormal"&gt;Activation completed&lt;/div&gt;&lt;div class="MsoNormal"&gt;Location changed to serverRuntime tree. This is a read-only tree with ServerRuntimeMBean as the root. &lt;/div&gt;&lt;div class="MsoNormal"&gt;For more help, use help(serverRuntime)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;**** DataSource Details ****&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  cp&lt;/div&gt;&lt;div class="MsoNormal"&gt;Driver Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  Oracle JDBC driver&lt;/div&gt;&lt;div class="MsoNormal"&gt;DataSource:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  oracle.jdbc.xa.client.OracleXADataSource&lt;/div&gt;&lt;div class="MsoNormal"&gt;Properties:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  {user=demo}&lt;/div&gt;&lt;div class="MsoNormal"&gt;State:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  Running&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] BUILD SUCCESS&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Total time: 10.686s&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Finished at: Wed Nov 23 16:55:25 CST 2011&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] Final Memory: 13M/81M&lt;/div&gt;&lt;div class="MsoNormal"&gt;[INFO] ------------------------------------------------------------------------&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=IwwdVhFP1p4:_LGCl9NsOBg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/IwwdVhFP1p4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/7187222536454221950/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=7187222536454221950&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7187222536454221950?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7187222536454221950?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/IwwdVhFP1p4/weblogic-server-12c-maven-usage-notes.html" title="WebLogic Server 12c - Maven Usage Notes" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/12/weblogic-server-12c-maven-usage-notes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIAQnsyfSp7ImA9WhdQEEk.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-870940805707774760</id><published>2011-08-11T16:05:00.000+09:30</published><updated>2011-08-11T16:05:43.595+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T16:05:43.595+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="classloading" /><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><title>weblogic.xml and prefer-application-packages</title><content type="html">Short and sweet this one, purely for my own future simple reference.&lt;br /&gt;
&lt;br /&gt;
To use &lt;b&gt;prefer-application-packages&lt;/b&gt; in weblogic.xml, it looks like this:&lt;br /&gt;
&lt;code&gt;&lt;pre&gt;&amp;lt;weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd"&amp;gt;

  &amp;lt;jsp-descriptor&amp;gt;
    &amp;lt;keepgenerated&amp;gt;true&amp;lt;/keepgenerated&amp;gt;
    &amp;lt;debug&amp;gt;true&amp;lt;/debug&amp;gt;
  &amp;lt;/jsp-descriptor&amp;gt;

  &amp;lt;context-root&amp;gt;/quicktest&amp;lt;/context-root&amp;gt;
  
  &lt;b&gt;&amp;lt;container-descriptor&amp;gt;&lt;/b&gt;
    &amp;lt;prefer-application-packages&amp;gt;
        &amp;lt;package-name&amp;gt;org.codehaus.jackson.*&amp;lt;/package-name&amp;gt;
        &amp;lt;package-name&amp;gt;org.codehaus.jettison.*&amp;lt;/package-name&amp;gt;
        &amp;lt;package-name&amp;gt;org.objectweb.asm.*&amp;lt;/package-name&amp;gt;
    &amp;lt;/prefer-application-packages&amp;gt;
  &lt;b&gt;&amp;lt;/container-descriptor&amp;gt;&lt;/b&gt;

&amp;lt;/weblogic-web-app&amp;gt;
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=X4i6UCd9rpU:nQ6OiutqLJw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/X4i6UCd9rpU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/870940805707774760/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=870940805707774760&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/870940805707774760?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/870940805707774760?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/X4i6UCd9rpU/weblogicxml-and-prefer-application.html" title="weblogic.xml and prefer-application-packages" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/08/weblogicxml-and-prefer-application.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcHRnoyeSp7ImA9WhdTFUw.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-8259903221708666534</id><published>2011-07-13T10:00:00.000+09:30</published><updated>2011-07-13T10:00:37.491+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-13T10:00:37.491+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java SE 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title>Unofficial Java SE 7 Builds for Mac OS X</title><content type="html">Not sure how I overlooked this, but according to this page here:&lt;br /&gt;
&lt;br /&gt;
http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port&lt;br /&gt;
&lt;br /&gt;
There are prebuilt (unofficial) binaries for Java SE 7 on Mac OS X here:&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/openjdk-osx-build/downloads/list?q=label:Featured&lt;br /&gt;
&lt;br /&gt;
Good stuff.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=1_FPp4YkrCw:JfLc0xZP0as:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/1_FPp4YkrCw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/8259903221708666534/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=8259903221708666534&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/8259903221708666534?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/8259903221708666534?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/1_FPp4YkrCw/unofficial-java-se-7-builds-for-mac-os.html" title="Unofficial Java SE 7 Builds for Mac OS X" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/07/unofficial-java-se-7-builds-for-mac-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUHQX48eCp7ImA9WhZaF0s.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-5382206389908842196</id><published>2011-07-04T18:00:00.000+09:30</published><updated>2011-07-04T18:00:30.070+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-04T18:00:30.070+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="EclipseLink" /><category scheme="http://www.blogger.com/atom/ns#" term="JPA" /><title>Plugging in a later version of EclipseLink to WebLogic Server</title><content type="html">Talking with &lt;a href="http://www.blogger.com/profile/02383574560699818383"&gt;Doug Clarke&lt;/a&gt; of EclipseLink fame and fortune last week, it sounds like there is some real interest from developers in wanting to update WebLogic Server to use later versions of the EclipseLink in order to access it's evolving feature set.&lt;br /&gt;
&lt;br /&gt;
Which should offer no surprises really, EclipseLink rocks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Investigation&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Turning to the situation at hand, the main points to be addressed are:&lt;br /&gt;
&lt;br /&gt;
1. The later versions of EclipseLink are JPA 2.0 based, so we'll assume that the predominant use case is centered around using JPA 2.0.&lt;br /&gt;
&lt;br /&gt;
WebLogic Server supports JPA 2.0 through the application of a &lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#CIHEEBJE"&gt;Smart Update patch&lt;/a&gt; or via &lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#CIHDGHFE"&gt;manual adjustments&lt;/a&gt; to the PRE_CLASSPATH to incorporate two additional JAR files that enable the use of JPA 2.0.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
We'll consider this one easy to handle using documented features. &lt;br /&gt;
&lt;br /&gt;
2. WebLogic Server provides a version of EclipseLink that is loaded as one it's standard feature bearing modules and thus is present by default in the classpath of WebLogic Server for deployed applications.&amp;nbsp; For WLS 10.3.5, this version is org.eclipse.persistence_1.1.0.0_2-1.jar.&lt;br /&gt;
&lt;br /&gt;
WebLogic Server has a feature called the Filtering Classloader, which enables applications to selectively override the libraries from WebLogic Server that an application sees.&amp;nbsp; This should allow an application to be configured to not use the default version of EclipseLink that WebLogic Server provides.&amp;nbsp; This requires each application to specifically provide a weblogic-application.xml file that lists the &amp;lt;prefer-application-packages&amp;gt; configuration set to explicitly filter our the org.eclipselink.persistence package.&lt;br /&gt;
&lt;br /&gt;
3. Any change to the EclipseLink version should be isolated to just an application, and not applied to an entire WebLogic Server installation or domain.&lt;br /&gt;
&lt;br /&gt;
To make the later version of EclipseLink available, there are a few simple options available that could be explored: a) the EclipseLink jar file could be added to the CLASSPATH of WebLogic Server; b) the EclipseLink jar file could be dropped into the $domain/lib directory; c) the newer version of EclipseLink could be used to replace the existing EclipseLink jar file shipped with WebLogic Server, retaining the same name; d) the WebLogic Server shared-library mechanism could be used to deploy the EclipseLink libraries which applications can then selectively reference.&lt;br /&gt;
&lt;br /&gt;
For the sake of expediency, I won't bother going through the pros/cons with each of those options and will just pick a winner from my perspective: the use of a shared-library to provide a selectively consumable version of EclipseLink.&lt;br /&gt;
&lt;br /&gt;
Let's just examine this for a moment -- a &lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13706/libraries.htm#i1064656"&gt;WebLogic Server shared-library&lt;/a&gt; is an artifact that can be deployed to a WebLogic Server target, which can then be referenced by an application being deployed, whereupon WebLogic Server will merge the contents of the shared-library with the application.&amp;nbsp; This enables common libraries to be deployed and used by multiple applications.&amp;nbsp; Furthermore, shared-libraries can take the format of a standard Java EE archives, where descriptors can be provided which are then also merged with the final application deployment.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Given those capabilities:&lt;br /&gt;
&lt;br /&gt;
a) it's possible to construct and deploy an EAR file based shared-library that contains a later version of EclipseLink and a weblogic-application.xml file which provides a preset prefer-application-packages setting that filters the org.eclipselink.persistence.* package.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
b) to use a later version of EclipseLink, an application simply needs to include it's own weblogic-application.xml that imports the EclipseLink shared-library it need to use.&lt;br /&gt;
&lt;br /&gt;
Thus, we have a supported deployment format (can be targeted at single nodes, clusters, whatever ...) to provide later versions of EclipseLink, which can be shared and selectively used by applications as desired.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Implementation&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To test this out in an end-to-end manner, I performed the following steps:&lt;br /&gt;
&lt;br /&gt;
1. Downloaded eclipselink-2.2.0.v20110202-r8913.zip from the EclipseLink web site.&lt;br /&gt;
&lt;br /&gt;
2. Created a small ant project to produce an     eclipselink-shared-lib.ear file.&amp;nbsp; The layout of the shared-library is just a standard Java EE EAR file and contains the following items:&lt;br /&gt;
&lt;br /&gt;
META-INF/weblogic-application.xml&lt;br /&gt;
META-INF/application.xml&lt;br /&gt;
lib/eclipselink.jar&lt;br /&gt;
&lt;br /&gt;
The weblogic-application.xml file contains the following configuration elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;weblogic-application&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;prefer-application-packages&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;package-name&amp;gt;org.eclipse.persistence.*&amp;lt;/package-name&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/prefer-application-packages&amp;gt;&lt;br /&gt;
&amp;lt;/weblogic-application&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application.xml was a necessary element to support the runtime library merging.&amp;nbsp; As you can see from the below, it's basically a NOOP configuration file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;application&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;display-name&amp;gt;eclipselink-shared-lin&amp;lt;/display-name&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;module&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;java&amp;gt;&amp;lt;/java&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/module&amp;gt;&lt;br /&gt;
&amp;lt;/application&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ant build script produces an EAR file from these elements with one important addition that marks the EAR file as a shared-library for WebLogic Server by adding a number of attributes to the META-INF/MANIFEST.MF file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;target name="package" depends="prepare"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jar destfile="dist/${ant.project.name}.ear"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;metainf dir="etc" includes="*.xml"/&amp;gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;manifest&amp;gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="Extension-Name" value="eclipselink"/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="Specification-Version" value="2.0"/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="Implementation-Version" value="2.2.0"/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/manifest&amp;gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="build" includes="**/*"/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/jar&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At deployment time, WebLogic Server will use the attributes as meta-data for the deployed shared-library.&lt;br /&gt;
&lt;br /&gt;
The final EAR file looks like this:&lt;br /&gt;
&lt;br /&gt;
sbutton:~/Projects/Java/eclipselink-shared-lib/dist $ jar tf eclipselink-shared-lib.ear &lt;br /&gt;
META-INF/&lt;br /&gt;
META-INF/MANIFEST.MF&lt;br /&gt;
META-INF/application.xml&lt;br /&gt;
META-INF/weblogic-application.xml&lt;br /&gt;
lib/&lt;br /&gt;
lib/eclipselink.jar&lt;br /&gt;
&lt;br /&gt;
For reference, the simple ant project to build the eclipselink-shared-lib.ear file is here: &lt;a href="http://bit.ly/eclipse-shared-lib"&gt;eclipselink-shared-lib.zip&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
3. Deployed eclipselink-shared-lib.ear to WebLogic Server.&amp;nbsp; This results in a new library being available on the server,&lt;b&gt; eclipselink#2.0@2.2.0&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
4. Created a test application that imports eclipselink#2.0@2.2.0 and outputs the version of it that it is seeing.&lt;br /&gt;
&lt;br /&gt;
The application uses a weblogic.xml to reference the &lt;a class="moz-txt-link-abbreviated" href="mailto:eclipselink#2.0@2.2.0"&gt;eclipselink#2.0@2.2.0&lt;/a&gt;     shared-library that was deployed, which picks up both the new version of eclipselink.jar as well as the     filtering-classloader description the library contains:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
weblogic-application.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;weblogic-application&amp;gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;library-ref&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;library-name&amp;gt;eclipselink&amp;lt;/library-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &amp;lt;specification-version&amp;gt;2.0&amp;lt;/specification-version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;     &amp;lt;implementation-version&amp;gt;2.2.0&amp;lt;/implementation-version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/library-ref&amp;gt;&lt;/b&gt;&lt;br /&gt;
&amp;lt;/weblogic-application&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the application, used a simple servlet that outputs the version of EclipseLink it is seeing: &lt;br /&gt;
&lt;br /&gt;
out.printf("&amp;lt;p&amp;gt;EclipseLink Version: %s&amp;lt;/p&amp;gt;",     org.eclipse.persistence.Version.getVersionString()); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Packaged the application into an EAR file and deployed it to WebLogic Server as an application.&lt;br /&gt;
&lt;br /&gt;
When the application is accessed it reports the new version of EclipseLink supplied via the shared-library:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EclipseLink       Version: 2.2.0.v20110202-r8913&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;
6. Performed a negative test by undeploying the application, removed the weblogic-application.xml file from it and redeployed it.&lt;br /&gt;
&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
When the application is accessed it reports the default version of EclipseLink that WebLogic Server supplies:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EclipseLink       Version: 2.1.3.v20110304-r9073&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
7.&lt;b&gt;&amp;nbsp; &lt;/b&gt;With the basic premise validated, add a JPA module to validate the code-weaving EclipseLink performs works as expected.&amp;nbsp; To verify the version EclipseLink is using the EclipseLink log level was set to fine and the console output reviewed, which showed up as &lt;b&gt;Eclipse Persistence       Services - 2.2.0.v20110202-r8913&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The use of WebLogic Server shared-libraries appears to be a very suitable model for providing later versions of EclipseLink that automatically filter out the WebLogic Server supplied versions, which applications can selectively choose to import when they need the later versions.&lt;br /&gt;
&lt;br /&gt;
This was just a simple test of the concept of using WebLogic Server shared-libraries to do this.&amp;nbsp; The EclipseLink/TopLink team are in the throes of formally certifying this approach, so keep an eye out for it on the EclipseLink site if it does pass full muster!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=LByQSABmjhw:QElnKrUuRzw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/LByQSABmjhw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/5382206389908842196/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=5382206389908842196&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5382206389908842196?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5382206389908842196?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/LByQSABmjhw/plugging-in-later-version-of.html" title="Plugging in a later version of EclipseLink to WebLogic Server" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/07/plugging-in-later-version-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYBSH8yeSp7ImA9WhZbEkU.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-8499041092976315141</id><published>2011-06-17T14:52:00.000+09:30</published><updated>2011-06-17T14:52:39.191+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-17T14:52:39.191+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java SE 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title>Building and Running OpenJDK 7 on Mac OS X - A Breeze</title><content type="html">Preparing a little for the Adelaide JUG meeting yesterday, where Java SE 7 was going to be the topic of discussion, I finally thought it was time to grab the OpenJDK 7 source, get it built and working on my Mac.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port"&gt;http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After checking off the pre-reqs, the process was as simple as following the small set of very clear instructions on the Wiki page.&lt;br /&gt;
&lt;br /&gt;
The only small side excursion I had was that my bash environment had a JAVA_HOME env var set, which aborted the build at one point.&amp;nbsp; Unsetting that and restarting the build, it then ran flawlessly for about 30mins before out popped a shiny new Open JDK 7 build.&lt;br /&gt;
&lt;br /&gt;
Having never manually installed a JDK on my Mac (Apple updates have served me well) the instructions for how and where to install it was very helpful. And so simple! Particularly with how it results in the new JDK being visible to the &lt;code&gt;/usr/libexec/java_home&lt;/code&gt; utility: &lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sbutton:~ $ /usr/libexec/java_home  -V &lt;br /&gt;
Matching Java Virtual Machines (4):&lt;br /&gt;
1.6.0_24-b07-334, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home&lt;br /&gt;
1.6.0_24-b07-334, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home&lt;br /&gt;
1.7.0, x86_64: "OpenJDK 7" /Users/sbutton/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home&lt;br /&gt;
1.7.0, i386: "OpenJDK 7" /Users/sbutton/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Voila! &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sbutton:~ $ export JAVA_HOME=`/usr/libexec/java_home&amp;nbsp; -v 1.7`&lt;br /&gt;
sbutton:~ $ java -version&lt;br /&gt;
openjdk version "1.7.0-internal"&lt;br /&gt;
OpenJDK Runtime Environment (build 1.7.0-internal-sbutton_2011_06_16_11_39-b00)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 21.0-b15, mixed mode) &amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &lt;/code&gt;&lt;br /&gt;
Now looking forward to trying out some of the new language features with NetBeans 7.0. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-m4Bqmqmn2y0/Tfrjlqrpd1I/AAAAAAAAAUk/AXk8znfq5b8/s1600/Screen+shot+2011-06-17+at+2.47.51+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://4.bp.blogspot.com/-m4Bqmqmn2y0/Tfrjlqrpd1I/AAAAAAAAAUk/AXk8znfq5b8/s400/Screen+shot+2011-06-17+at+2.47.51+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
All in all, a total breeze! Kudos to the OpenJDK Mac porters group.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=clJuwpS3cvo:AzGqk5K2XaU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/clJuwpS3cvo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/8499041092976315141/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=8499041092976315141&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/8499041092976315141?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/8499041092976315141?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/clJuwpS3cvo/building-and-running-openjdk-7-on-mac.html" title="Building and Running OpenJDK 7 on Mac OS X - A Breeze" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-m4Bqmqmn2y0/Tfrjlqrpd1I/AAAAAAAAAUk/AXk8znfq5b8/s72-c/Screen+shot+2011-06-17+at+2.47.51+PM.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/06/building-and-running-openjdk-7-on-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08AQ386eSp7ImA9WhZbEE4.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-5732643157587322518</id><published>2011-06-14T16:40:00.001+09:30</published><updated>2011-06-14T16:47:22.111+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-14T16:47:22.111+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><title>WebLogic Server: Listing Groups of an Authenticated User</title><content type="html">Another question from a colleague today: "for a given authenticated user, how can I see what groups the user belongs to?"&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Yep, good question Pas.  Not sure, but worth some time to find out.&lt;br /&gt;
&lt;br /&gt;
Hunting through the &lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13710/toc.htm"&gt;WebLogic Security Documentation&lt;/a&gt;, I found a good description and diagram of how a Subject is related to a Principal.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13710/img/atn_sub.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="329" src="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13710/img/atn_sub.gif" width="410" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: inherit;"&gt;A &lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13710/glossary.htm#i1041841"&gt;&lt;span class="xrefglossterm"&gt;principal&lt;/span&gt;&lt;/a&gt;  is an identity assigned to a user or group as a result of  authentication. Both users and groups can be used as principals by  application servers such as WebLogic Server. The Java Authentication and  Authorization Service (JAAS) requires that &lt;span class="glossaryterm"&gt;subjects&lt;/span&gt; be used as containers for authentication information, including principals.&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;As part of a successful authentication, principals are signed and stored in a subject for future use.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;Any principal that is going to represent a WebLogic Server user or group needs to implement the &lt;code&gt;WLSUser&lt;/code&gt; and &lt;code&gt;WLSGroup&lt;/code&gt; interfaces, which are available in the &lt;code&gt;weblogic.security.spi&lt;/code&gt; package.&lt;/div&gt;&lt;/blockquote&gt;Thus presumably, if you can get hold of the Subject, then you should be able to see the Principals associated with the User, of which some should reflect the Group(s) the User belongs to.&lt;br /&gt;
&lt;br /&gt;
But how do you get the Subject?&lt;br /&gt;
&lt;br /&gt;
I kept reading through documentation, but I couldn't see any really obvious description of where/how the Subject could be obtained.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Then, after almost giving up and resorting to looking through the Javadoc, I found this small reference:&lt;br /&gt;
&lt;blockquote&gt;&lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13711/thin_client.htm#i1030501"&gt; http://download.oracle.com/docs/cd/E17904_01/web.1111/e13711/thin_client.htm#i1030501&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In &lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13711/thin_client.htm#i1030501"&gt;Example 3-3&lt;/a&gt;,  notice that the JSP is calling an API (request.getRemoteUser()) to get  the name of the user that logged in. &lt;/blockquote&gt;&lt;blockquote&gt;A different API,  &lt;b&gt;weblogic.security.Security.getCurrentSubject()&lt;/b&gt;, could be used instead.  To use this API to get the name of the user, use it with the  SubjectUtils API as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="oac_no_warn"&gt;String username = weblogic.security.SubjectUtils.getUsername&lt;b&gt;&lt;span style="color: orange;"&gt;(&lt;/span&gt;&lt;/b&gt;
&lt;b style="color: black;"&gt;weblogic.security.Security.getCurrentSubject()&lt;/b&gt;);&lt;/pre&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/blockquote&gt;Note: In the actual doc, there's a missing opening parenthesis in the supplied code snippet.&amp;nbsp; I've added it in orange in the above.&lt;br /&gt;
&lt;br /&gt;
Looking at the Javadoc, the &lt;b&gt;weblogic.security.Security&lt;/b&gt; class has a static method that returns a &lt;b&gt;javax.security.auth.Security&lt;/b&gt; object.&lt;br /&gt;
&lt;br /&gt;
I also found a post from Edward Biemond here: &lt;a href="http://blog.whitehorses.nl/2010/01/29/weblogic-web-application-container-security-part-1/"&gt;http://blog.whitehorses.nl/2010/01/29/weblogic-web-application-container-security-part-1/&lt;/a&gt; that discusses this area, from a slightly different more practical perspective perhaps.&lt;br /&gt;
&lt;br /&gt;
With the Subject accessible and the description of the WLUser and WLGroup interfaces above, the group(s) an authenticated user belongs to can be readily discovered.&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import weblogic.security.Security;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import weblogic.security.spi.WLSUser;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import weblogic.security.spi.WLSGroup;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void doSubjectStuff(PrintWriter out,&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpServletRequest request,&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpServletResponse response) {&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Subject subject = Security.getCurrentSubject();&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer groups = new StringBuffer();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String user = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; boolean first = true;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(Principal p: &lt;b&gt;subject.getPrincipals()&lt;/b&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;b&gt;p instanceof WLSGroup&lt;/b&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(first) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; first=false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; groups.append(", ");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; groups.append(p.getName());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (&lt;b&gt;p instanceof WLSUser&lt;/b&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user = p.getName();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.printf("&amp;lt;p&amp;gt;RemoteUser: %s, User: %s, belongs to: %s&amp;lt;/p&amp;gt;", &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getUserPrincipal().getName(),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; groups);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calling this from a servlet, deployed within a simple web application that uses BASIC authentication mapped to a couple of WebLogic Server groups, the following output is displayed when the user "steve" logs in:&lt;br /&gt;
&lt;blockquote&gt;&lt;b&gt;RemoteUser: steve, &lt;b&gt;User: steve, belongs to: AppTesters, Deployers&lt;/b&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;br /&gt;
Note, as Edmond also points out, the groups that are provided in the Subject are the WebLogic Server groups the user belongs to, and not the logical role-name defined in the web.xml file.&lt;br /&gt;
&lt;blockquote&gt;web.xml:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security-role&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;role-name&amp;gt;ADMINS&amp;lt;/role-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/security-role&amp;gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;blockquote&gt;weblogic.xml:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;security-role-assignment&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;role-name&amp;gt;ADMINS&amp;lt;/role-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;principal-name&amp;gt;AppTesters&amp;lt;/principal-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;principal-name&amp;gt;Administrators&amp;lt;/principal-name&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/security-role-assignment&amp;gt;&lt;/code&gt;&lt;/blockquote&gt;The primary new takeaway point I got from this was the use of the weblogic.security.Security class to obtain an instance of the current Subject.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=w20yg77MQnw:ysHQEJDv2ho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/w20yg77MQnw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/5732643157587322518/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=5732643157587322518&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5732643157587322518?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5732643157587322518?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/w20yg77MQnw/weblogic-server-listing-groups-of.html" title="WebLogic Server: Listing Groups of an Authenticated User" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/06/weblogic-server-listing-groups-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EFQnc4cCp7ImA9WhdRGEs.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-3915111947311293909</id><published>2011-06-07T16:10:00.002+09:30</published><updated>2011-08-09T15:30:13.938+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-09T15:30:13.938+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Logging" /><title>Using SLF4J with WebLogic Server Logging</title><content type="html">Just recently, I needed to take a look at the SLF4J (Simple Logging Facade 4 Java) API, and more specifically, to how it could be employed on WebLogic Server.&lt;br /&gt;
&lt;h4&gt;Simple Logging Facade for Java&lt;/h4&gt;&lt;a href="http://www.slf4j.org/"&gt;http://www.slf4j.org/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
SLF4J follows the Commons-Logging model in that it provides a "Simple Logging Facade" with an API that can be used to insert log messages into application code, without specifying the specific Logging framework that is to be used.  The actual work of capturing and emitting the log message is handled by "pluggable" SLF4J binding, which are added at deployment/runtime time (or server start) and handle the actual logging implementation work.  There are pre-built bindings for the common logging frameworks such as JDK logging, Log4J, LogBack, as well as a simple Logging implementation that appears to simply print log messages to stdout.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Basic Problem&lt;/h4&gt;Having a look at a project that was using SLF4J with WebLogic Server, the question that came up was how could we direct the SLF4J logs into the standard WebLogic Server log facilities.&lt;br /&gt;
&lt;br /&gt;
In it's basic form, with the slf4j-simple-1.6.0.jar binding being used, the SLF4J logs were not consistent with the rest of the WebLogic Server logs.  &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;lt;Jun 7, 2011 3:22:04 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000395&amp;gt; &amp;lt;Following extensions directory contents added to the end of the classpath:&lt;br /&gt;
/Users/sbutton/Projects/Domains/wls1035/lib/slf4j-api-1.6.0.jar:/Users/sbutton/Projects/Domains/wls1035/lib/slf4j-simple-1.6.0.jar&amp;gt; &lt;br /&gt;
&amp;lt;Jun 7, 2011 3:22:05 PM CST&amp;gt; &amp;lt;Info&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000377&amp;gt; &amp;lt;Starting WebLogic Server with Java HotSpot(TM) 64-Bit Server VM Version 19.1-b02-334 from Apple Inc.&amp;gt; &lt;br /&gt;
&amp;lt;Jun 7, 2011 3:22:05 PM CST&amp;gt; &amp;lt;Info&amp;gt; &amp;lt;Management&amp;gt; &amp;lt;BEA-141107&amp;gt; &amp;lt;Version: WebLogic Server 10.3.5.0  Fri Apr 1 20:20:06 PDT 2011 1398638 &amp;gt; &lt;br /&gt;
. . .&lt;br /&gt;
. . .&lt;br /&gt;
&amp;lt;Jun 7, 2011 3:22:13 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000331&amp;gt; &amp;lt;Started WebLogic Admin Server "myserver" for domain "mydomain" running in Development Mode&amp;gt; &lt;br /&gt;
&amp;lt;Jun 7, 2011 3:22:13 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000365&amp;gt; &amp;lt;Server state changed to RUNNING&amp;gt; &lt;br /&gt;
&amp;lt;Jun 7, 2011 3:22:13 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000360&amp;gt; &amp;lt;Server started in RUNNING mode&amp;gt; &lt;br /&gt;
&lt;b&gt;14 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO com.oracle.demo.wlsslf4j.TestServlet - *** This is an info: class com.oracle.demo.wlsslf4j.TestServlet&lt;br /&gt;
14 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] WARN com.oracle.demo.wlsslf4j.TestServlet - *** This is a warning: class com.oracle.demo.wlsslf4j.TestServlet&lt;br /&gt;
14 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] ERROR com.oracle.demo.wlsslf4j.TestServlet - *** This is an error: class com.oracle.demo.wlsslf4j.TestServlet&lt;br /&gt;
&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;
The question was: without writing a specific WLS binding, is there a way to enable the SLF4J logs to be directed into the WebLogic Server logs so they are consistently formatted and able to be viewed in the WebLogic Server console with the rest of the logs?&lt;br /&gt;
&lt;h4&gt;One Solution&lt;/h4&gt;The solution was quite straightforward in the end, simply by combining two pieces of existing functionality:&lt;br /&gt;
&lt;br /&gt;
1. The SLF4J distribution ships with a binding for JDK logging called slf4j-jdk14-1.6.0.jar.  This results in the SLf4J logs being directed into the JDK logging framework.&lt;br /&gt;
&lt;br /&gt;
2. WebLogic Server ships with a JDK logging handler which will pick up log messages emitted from JDK logging framework and direct them into the WebLogic Server logging system.  &lt;br /&gt;
&lt;br /&gt;
The weblogic.logging.ServerLoggingHandler is documented here: &lt;a href="http://download.oracle.com/docs/cd/E14571_01/web.1111/e13739/logging_services.htm#CHDBBEIJ"&gt;http://download.oracle.com/docs/cd/E14571_01/web.1111/e13739/logging_services.htm#CHDBBEIJ&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To get it all working, all it required was making the relevant libraries available to WebLogic Server and wiring them together using a logging.properties file.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Copy Libraries into WebLogic Server&lt;/h4&gt;SLF4J basically comes as two components.  There's the API which is used by applications, and then there's the bridgings that handle the actual production of log messages into the desired form.&lt;br /&gt;
&lt;br /&gt;
To make SLF4J available to WebLogic Server, I employed the simplest way I know - copy them into the domain/lib directory.  This has a certain set of limitations in terms of updating versions without a server restart, etc. but it's a really simple way to get things working in the first instance.  &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;sbutton:~/Projects/Domains/wls1035 $ ls -l lib/&lt;br /&gt;
total 88&lt;br /&gt;
-rw-r--r--  1 sbutton  staff    702  6 Jun 13:15 readme.txt&lt;br /&gt;
-rw-r--r--  1 sbutton  staff  25496  7 Jun 15:19 slf4j-api-1.6.0.jar&lt;br /&gt;
-rw-r--r--  1 sbutton  staff   8887  7 Jun 15:34 slf4j-jdk14-1.6.0.jar&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;h4&gt;Create a logging.properties file&lt;/h4&gt;The logging.properties file is a standard way to control JDK logging.  Since we have directed SLf4J logs into JDK logging framework by making the slf4j-jdk14-1.6.0 binding available, we can configure JDK logging to use the ServerLoggingHandler provided by WebLogic Server, so as to direct its logs into the WebLogic Server logging system.&lt;br /&gt;
&lt;br /&gt;
The JDK logging framework and its configuration options are all well documented, starting from Nov 2001 here: &lt;a href="http://download.oracle.com/javase/1.4.2/docs/guide/util/logging/overview.html"&gt;http://download.oracle.com/javase/1.4.2/docs/guide/util/logging/overview.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the logging.properties file that was used:&lt;br /&gt;
&lt;code&gt;####&lt;br /&gt;
# Specify the handlers to create in the root logger&lt;br /&gt;
handlers = weblogic.logging.ServerLoggingHandler&lt;br /&gt;
&lt;br /&gt;
# Register handlers for the com.oracle.demo package and its child loggers&lt;br /&gt;
com.oracle.demo.handlers = weblogic.logging.ServerLoggingHandler&lt;br /&gt;
&lt;br /&gt;
# Do not send the org.hibernate.validator log messages to the root handler&lt;br /&gt;
com.oracle.demo.useParentHandlers = false&lt;br /&gt;
&lt;br /&gt;
# Set the default logging level for the root logger&lt;br /&gt;
.level = ALL&lt;br /&gt;
com.oracle.demo.level = ALL&lt;br /&gt;
&lt;br /&gt;
# Set the default logging level for new ServerLoggingHandler instances&lt;br /&gt;
weblogic.logging.ServerLoggingHandler.level = ALL&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
To direct the JDK logging framework to use the logging.properties file, the standard System property java.util.logging.config.file is used.  With WebLogic Server, this can be easily accomplished by setting the JAVA_OPTIONS System property with the corresponding value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$ export JAVA_OPTIONS="-Djava.util.logging.config.file=/Users/sbutton/Projects/Domains/wls1035/logging.properties"&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Start WebLogic Server and Observe&lt;/h4&gt;With the libraries copied into the domain/lib directory, the logging.properties file created and specified as $JAVA_OPTIONS, starting WebLogic Server should now allow the logs created via SLF4J to be directed into the WebLogic Server logging framework.  This should let them be seen on stdout in a consistent form with the standard WebLogic Server log messages, as well as via the WebLogic Server console through it's log viewer.&lt;br /&gt;
&lt;h5&gt;SL4J logs in stdout&lt;/h5&gt;&lt;code&gt;&amp;lt;Jun 7, 2011 3:52:01 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000365&amp;gt; &amp;lt;Server state changed to RUNNING&amp;gt; &lt;br /&gt;
&amp;lt;Jun 7, 2011 3:52:01 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000360&amp;gt; &amp;lt;Server started in RUNNING mode&amp;gt; &lt;br /&gt;
&lt;b&gt;&amp;lt;Jun 7, 2011 3:52:07 PM CST&amp;gt; &amp;lt;Warning&amp;gt; &lt;br /&gt;
&amp;lt;com.oracle.demo.wlsslf4j.TestServlet&amp;gt; &amp;lt;BEA-000000&amp;gt; &amp;lt;*** This is a warning: class com.oracle.demo.wlsslf4j.TestServlet&amp;gt; &lt;br /&gt;
&amp;lt;Jun 7, 2011 3:52:07 PM CST&amp;gt; &amp;lt;Error&amp;gt; &amp;lt;com.oracle.demo.wlsslf4j.TestServlet&amp;gt; &amp;lt;BEA-000000&amp;gt; &amp;lt;*** This is an error: class com.oracle.demo.wlsslf4j.TestServlet&amp;gt; &lt;/b&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;h5&gt;SL4J logs in WebLogic Server console&lt;/h5&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9oOdIlNyuQ0/Te3GRRDAFII/AAAAAAAAAUY/0-H5WRWOc24/s1600/Screen%2Bshot%2B2011-06-07%2Bat%2B4.00.46%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="329" src="http://1.bp.blogspot.com/-9oOdIlNyuQ0/Te3GRRDAFII/AAAAAAAAAUY/0-H5WRWOc24/s400/Screen%2Bshot%2B2011-06-07%2Bat%2B4.00.46%2BPM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-8R35vXGc4l0/Te3GYQgP3nI/AAAAAAAAAUg/20_AqWZcBoY/s1600/Screen%2Bshot%2B2011-06-07%2Bat%2B4.00.27%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="329" src="http://4.bp.blogspot.com/-8R35vXGc4l0/Te3GYQgP3nI/AAAAAAAAAUg/20_AqWZcBoY/s400/Screen%2Bshot%2B2011-06-07%2Bat%2B4.00.27%2BPM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=nvcal0g0yx0:1q_hrSV0NlI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/nvcal0g0yx0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/3915111947311293909/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=3915111947311293909&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/3915111947311293909?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/3915111947311293909?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/nvcal0g0yx0/using-slf4j-with-weblogic-server.html" title="Using SLF4J with WebLogic Server Logging" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-9oOdIlNyuQ0/Te3GRRDAFII/AAAAAAAAAUY/0-H5WRWOc24/s72-c/Screen%2Bshot%2B2011-06-07%2Bat%2B4.00.46%2BPM.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/06/using-slf4j-with-weblogic-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHQn8yeyp7ImA9WhZVF0k.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-6574281171764074877</id><published>2011-05-30T16:48:00.001+09:30</published><updated>2011-05-30T16:50:33.193+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T16:50:33.193+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VI" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS X" /><title>VI customizations for syntax coloring, auto-indenting and more</title><content type="html">A &lt;a href="http://redstack.wordpress.com/"&gt;colleague&lt;/a&gt; recently sent me a VIM resource file to configure how VIM displays code.&lt;br /&gt;
&lt;br /&gt;
A small set of simple changes, but the effect is very nice and makes the casual viewing of code, scripts, etc. much nicer with line numbering, auto-indenting,&amp;nbsp; syntax color coding, etc.&lt;br /&gt;
&lt;pre class="code"&gt;$ cat ~/.vimrc

set shiftwidth=2 
set tabstop=2 
set number 
set ruler 
set expandtab 
set smartindent 
set autoindent 
set showmatch 
:syntax enable 
highlight Statement ctermfg=white
highlight PreProc ctermfg=3
set pastetoggle=&amp;lt;F10&amp;gt;&lt;/pre&gt;&lt;p/&gt;This is what it looks with a Java file:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_PjxpgVSIKY/TeNDoiovYfI/AAAAAAAAAUQ/cvRnkRb7p3I/s1600/Screen+shot+2011-05-30+at+4.41.52+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="393" src="http://2.bp.blogspot.com/-_PjxpgVSIKY/TeNDoiovYfI/AAAAAAAAAUQ/cvRnkRb7p3I/s640/Screen+shot+2011-05-30+at+4.41.52+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Thanks Mark.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=nUJbyUsp9no:3qrcs1qnP6U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/nUJbyUsp9no" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/6574281171764074877/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=6574281171764074877&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/6574281171764074877?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/6574281171764074877?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/nUJbyUsp9no/vi-customizations-for-syntax-coloring.html" title="VI customizations for syntax coloring, auto-indenting and more" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-_PjxpgVSIKY/TeNDoiovYfI/AAAAAAAAAUQ/cvRnkRb7p3I/s72-c/Screen+shot+2011-05-30+at+4.41.52+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/vi-customizations-for-syntax-coloring.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEBQnk8fSp7ImA9WhZVE0U.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-7454219102726256673</id><published>2011-05-26T15:14:00.000+09:30</published><updated>2011-05-26T15:14:13.775+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-26T15:14:13.775+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="CAT" /><title>Applying WLS CAT to WLS 10.3.3</title><content type="html">To help answer an OTN question today regarding the use of the domain/lib directory on WLS 10.3.3, I went to use the CAT utility (as I've become accustomed) and then realized we'd only added it from the WLS 10.3.4 onwards.&lt;br /&gt;
&lt;br /&gt;
As far as I'm aware, we don't make use of any newer APIs in WLS 10.3.4 within CAT, so I simply copied out the wls-cat.war file from a WLS 10.3.4 installation and deployed it to the WLS 10.3.3 domain I was using for the test.&lt;br /&gt;
&lt;br /&gt;
The WLS CAT application deployed successfully and then seemed to work normally, letting me locate exactly where class I was using was being loaded from on WLS 10.3.3.&lt;br /&gt;
&lt;br /&gt;
Of course this is totally unsupported, but if you're in need of WLS CAT on an earlier 10.3.x release and of the adventurous spirit, give it a shot.&amp;nbsp; You can always undeploy it if it doesn't work for you.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=zBB8QHkHdh8:dnNObSAVoT0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/zBB8QHkHdh8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/7454219102726256673/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=7454219102726256673&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7454219102726256673?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7454219102726256673?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/zBB8QHkHdh8/applying-wls-cat-to-wls-1033.html" title="Applying WLS CAT to WLS 10.3.3" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/applying-wls-cat-to-wls-1033.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFQn0-eyp7ImA9WhZWF0o.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-818698358250925239</id><published>2011-05-19T12:58:00.000+09:30</published><updated>2011-05-19T12:58:33.353+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-19T12:58:33.353+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Maven" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans" /><title>Deploying a Random JSF 2.0 Example on WebLogic Server using Maven and NetBeans and Maven</title><content type="html">I had a bit of a hunt around yesterday looking for some JSF 2.0 example applications to deploy.&amp;nbsp; I quickly came across a comprehensive JSF 2.0 tutorial @ &lt;a href="http://www.coreservlets.com/JSF-Tutorial/jsf2/"&gt;http://www.coreservlets.com/JSF-Tutorial/jsf2/&lt;/a&gt; published by Marty Hall.&lt;br /&gt;
&lt;br /&gt;
For each of the tutorial sections on this site, the example code and pages that are used to demonstrate the concepts and discussion are published as accessible source code.&lt;br /&gt;
&lt;br /&gt;
So I thought I'd try a few of them out with WebLogic Server 10.3.5.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The examples I looked at didn't contain a build script, so I very simply converted them into Maven projects, which I then was able to open immediately in NetBeans (this feature rocks!).&amp;nbsp; I then built, packaged and ran the application on a WebLogic Server 10.3.5 domain, all from NetBeans.&lt;br /&gt;
&lt;br /&gt;
All up, I'd say it tool ~2 mins to get the example loaded and building in NetBeans and deployed to&amp;nbsp; WebLogic Server.&lt;br /&gt;
&lt;br /&gt;
It takes a lot more to describe it below than it does to actually do it.&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get the data-tables example to build, package and deploy to WebLogic Server.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt; Download the zip file from &lt;a href="http://www.coreservlets.com/JSF-Tutorial/jsf2/code/data-tables.zip"&gt;http://www.coreservlets.com/JSF-Tutorial/jsf2/code/data-tables.zip&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt; Extract the zip file to a local directory, which produces:&lt;br /&gt;
&lt;br /&gt;
/data-tables/WebContent&lt;br /&gt;
/data-tables/src&lt;br /&gt;
/data-tables/build&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. &lt;/b&gt;Generate a Java EE&amp;nbsp; Web Application using the Maven Archetype mechanism.&amp;nbsp; What a great feature this is in Maven.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;$ mvn archetype:generate&lt;/b&gt;&lt;br /&gt;
... &lt;br /&gt;
[INFO] Generating project in Interactive mode&lt;br /&gt;
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)&lt;br /&gt;
Choose archetype:&lt;br /&gt;
...&lt;br /&gt;
263: remote -&amp;gt; webapp-j2ee13 (-)&lt;br /&gt;
264: remote -&amp;gt; webapp-j2ee14 (-)&lt;br /&gt;
265: remote -&amp;gt; webapp-javaee6 (-)&lt;br /&gt;
&lt;b&gt;266: remote -&amp;gt; webapp-jee5 (-)&lt;/b&gt;&lt;br /&gt;
...&lt;br /&gt;
Choose a number: 107: &lt;b&gt;266&lt;/b&gt;&lt;br /&gt;
Choose version: &lt;br /&gt;
1: 1.0&lt;br /&gt;
2: 1.0.1&lt;br /&gt;
3: 1.1&lt;br /&gt;
4: 1.2&lt;br /&gt;
Choose a number: 4: &lt;br /&gt;
&lt;b&gt;Define value for property 'groupId': : coreservlets&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Define value for property 'artifactId': : data-tables&lt;/b&gt;&lt;br /&gt;
Define value for property 'version':&amp;nbsp; 1.0-SNAPSHOT: : &lt;br /&gt;
Define value for property 'package':&amp;nbsp; coreservlets: : &lt;br /&gt;
Confirm properties configuration:&lt;br /&gt;
groupId: coreservlets&lt;br /&gt;
artifactId: data-tables&lt;br /&gt;
version: 1.0-SNAPSHOT&lt;br /&gt;
package: coreservlets&lt;br /&gt;
&amp;nbsp;Y: : y&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;4.&lt;/b&gt; Copy the WebContent and src directories from the data-tables example into the new Maven project structure.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;$ cp -rp ~/Projects/Java/data-tables/WebContent/* src/main/webapp/&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;$ cp -rp ~/Projects/Java//data-tables/src/ src/main/java/&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. &lt;/b&gt;Start NetBeans and simply open the data-tables/pom.xml file to load the project into the IDE.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-JJWG7GzdcyU/TdSIQSAQZTI/AAAAAAAAAT4/DiAFWN-9iao/s1600/Screen+shot+2011-05-19+at+12.16.54+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="401" src="http://2.bp.blogspot.com/-JJWG7GzdcyU/TdSIQSAQZTI/AAAAAAAAAT4/DiAFWN-9iao/s640/Screen+shot+2011-05-19+at+12.16.54+PM.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Click around and explore the project to get a sense of what it contains.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QUxa9ncQ8Q0/TdSIyeI9EkI/AAAAAAAAAT8/0wZg6DlFgv4/s1600/Screen+shot+2011-05-19+at+12.34.01+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="369" src="http://2.bp.blogspot.com/-QUxa9ncQ8Q0/TdSIyeI9EkI/AAAAAAAAAT8/0wZg6DlFgv4/s640/Screen+shot+2011-05-19+at+12.34.01+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6.&lt;/b&gt; Add the jsf-api dependency to the POM so the ManagedBean classes can be compiled.&lt;br /&gt;
&lt;br /&gt;
You can either manually add this direct to the pom.xml as: &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;lt;dependency&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;javax.faces&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;jsf-api&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Or use the "Add Dependency" option on the project to search for it and enter it via a dialog:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AcmaQ3esuWY/TdSJE5XsrkI/AAAAAAAAAUA/yGrgCBsMgVw/s1600/Screen+shot+2011-05-19+at+12.26.50+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="387" src="http://4.bp.blogspot.com/-AcmaQ3esuWY/TdSJE5XsrkI/AAAAAAAAAUA/yGrgCBsMgVw/s400/Screen+shot+2011-05-19+at+12.26.50+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7.&lt;/b&gt; Add a weblogic.xml deployment descriptor to reference the JSF 2.0 shared-library deployed on the WLS domain.&lt;br /&gt;
&lt;br /&gt;
I simply coped in an existing version of the file I had used before.&amp;nbsp; You can also use the "New --&amp;gt; WebLogic --&amp;gt; WebLogic Descriptor" option in NetBeans to add it.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-zLhlFl37m5A/TdSJj0LwNFI/AAAAAAAAAUE/EEskOHj2-4c/s1600/Screen+shot+2011-05-19+at+12.23.43+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="293" src="http://3.bp.blogspot.com/-zLhlFl37m5A/TdSJj0LwNFI/AAAAAAAAAUE/EEskOHj2-4c/s400/Screen+shot+2011-05-19+at+12.23.43+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Add a library-ref to the jsf-2.0.war shared-library deployed on the WLS 10.3.4 domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;
&amp;lt;weblogic-web-app&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;context-root&amp;gt;/data-tables-1.0-SNAPSHOT&amp;lt;/context-root&amp;gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;lt;library-ref&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;library-name&amp;gt;jsf&amp;lt;/library-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;specification-version&amp;gt;2.0&amp;lt;/specification-version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;implementation-version&amp;gt;1.0.0.0_2-0-2&amp;lt;/implementation-version&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/library-ref&amp;gt;&lt;/b&gt;&lt;br /&gt;
&amp;lt;/weblogic-web-app&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;8.&lt;/b&gt; Run the project, select the WLS 10.3.5 Server type and watch it get built and packaged via Maven and deployed by NetBeans.&amp;nbsp; This will start the WLS 10.3.5 server if necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-o8zLUE3kmm0/TdSKdGzO0ZI/AAAAAAAAAUI/ZJbJ-HuxQmk/s1600/Screen+shot+2011-05-19+at+12.40.33+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://2.bp.blogspot.com/-o8zLUE3kmm0/TdSKdGzO0ZI/AAAAAAAAAUI/ZJbJ-HuxQmk/s400/Screen+shot+2011-05-19+at+12.40.33+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;9. &lt;/b&gt;View the example application in a browser&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wh-MhrvHjMI/TdSLtgOJtZI/AAAAAAAAAUM/P6m37pjjoU0/s1600/Screen+shot+2011-05-19+at+12.46.47+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="341" src="http://1.bp.blogspot.com/-wh-MhrvHjMI/TdSLtgOJtZI/AAAAAAAAAUM/P6m37pjjoU0/s400/Screen+shot+2011-05-19+at+12.46.47+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Summary&lt;/b&gt;: there it is, a random JSF 2.0 example application, converted to a Maven project, opened in NetBeans and deployed to WebLogic Server 10.3.5, all in ~ 2mins.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=938BMpC0pBY:dB5iDZXTa3E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/938BMpC0pBY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/818698358250925239/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=818698358250925239&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/818698358250925239?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/818698358250925239?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/938BMpC0pBY/deploying-random-jsf-20-example-on.html" title="Deploying a Random JSF 2.0 Example on WebLogic Server using Maven and NetBeans and Maven" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-JJWG7GzdcyU/TdSIQSAQZTI/AAAAAAAAAT4/DiAFWN-9iao/s72-c/Screen+shot+2011-05-19+at+12.16.54+PM.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/deploying-random-jsf-20-example-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQDRnY8eSp7ImA9WhZWF0s.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-4800673680735483875</id><published>2011-05-19T10:21:00.001+09:30</published><updated>2011-05-19T10:22:57.871+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-19T10:22:57.871+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="AJUG" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>First Adelaide Java User Group Session @ Oracle</title><content type="html">Tonight sees the first time that the Adelaide Java User Group meeting is being hosted @ the local Oracle office. &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The session should be interesting with Derek Webber presenting on his area of expertise in Meta-programming with Groovy.&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1 id="MetaprogrammingwithGroovy" style="color: #333333; font-family: Georgia,'Times New Roman',times,serif; font-size: 22px; font-style: normal; font-weight: normal;"&gt;Meta-programming with Groovy&lt;/h1&gt;Meta-programming is a term to  describe modifying code at runtime and is a very old idea in Computer  Science. Groovy (now at 1.8) is a language that builds features directly  on top of Java and aims to help developers be more productive. It’s  meta-programming features provide a great number of opportunities to  developers that are either really difficult to access or are all but  impossible in plain Java. I will provide an overview of the Groovy Meta  Object Protocol, along examples of what you can do with it. In  particular it helps with:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;easier reflection and adding behaviour dynamically&lt;/li&gt;
&lt;li&gt;monkeypatching and extending existing 3rd party code&lt;/li&gt;
&lt;li&gt;builders and domain-specific languages (DSLs)&lt;/li&gt;
&lt;/ul&gt;For any local Adelaide folks interested in attending, the registration link is here:&amp;nbsp; &lt;br /&gt;
&lt;a href="http://www.jugevents.org/jugevents/event/registration.form?event.id=38181%20"&gt;http://www.jugevents.org/jugevents/event/registration.form?event.id=38181 &lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=hryXMSP-T4w:bl8yX4NKQQk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/hryXMSP-T4w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/4800673680735483875/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=4800673680735483875&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4800673680735483875?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/4800673680735483875?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/hryXMSP-T4w/first-adelaide-java-user-group-session.html" title="First Adelaide Java User Group Session @ Oracle" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/first-adelaide-java-user-group-session.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcGSX0zeSp7ImA9WhZWFk0.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-8511279934618462710</id><published>2011-05-17T14:07:00.000+09:30</published><updated>2011-05-17T14:07:08.381+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T14:07:08.381+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Bean Validation" /><category scheme="http://www.blogger.com/atom/ns#" term="JPA" /><title>Observing Bean Validation at JPA Level</title><content type="html">A quick followup to yesterdays posting regarding the use of JSF 2.0, JPA 2.0 and Bean Validation.&lt;br /&gt;
&lt;br /&gt;
To verify the validation of the constraints at the JPA level, and not at the JSF front end, I decided to add a simple Servlet which calls the WidgetFacadeLocal directly to create a new Widget entity.&lt;br /&gt;
&lt;br /&gt;
This led to a small, interesting side excursion.&lt;br /&gt;
&lt;br /&gt;
Since the NetBeans project was defined as a Java EE 6 Web Application, when the new Servlet was added, the default option was to not generate a web.xml descriptor to describe the Servlet configuration and mapping, and instead to define the Servlet using the @WebServlet annotation on the Servlet class itself.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;@WebServlet(name = "TestValidationServlet", urlPatterns = {"/TestValidationServlet"})&lt;/b&gt;&lt;br /&gt;
public class TestValidationServlet extends HttpServlet {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now this won't deploy in this form to WebLogic Server 10.3.4 since it doesn't yet implement the Servlet 3.0 specification and support @WebServlet.&amp;nbsp; But ... WebLogic Server has provided it's own specific annotation for Servlets since the 10.3 timeframe.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13712/annotateservlet.htm#i161636"&gt;http://download.oracle.com/docs/cd/E17904_01/web.1111/e13712/annotateservlet.htm#i161636&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Therefore to have this Servlet deploy and run on WebLogic Server, without introducing a web.xml file, the @WLServlet annotation can simply be added to the Servlet class, looking like this:&lt;br /&gt;
&lt;br /&gt;
@WebServlet(name = "TestValidationServlet", urlPatterns = {"/TestValidationServlet"})&lt;br /&gt;
&lt;b&gt;@weblogic.servlet.annotation.WLServlet(name = "TestValidationServlet", mapping = "/TestValidationServlet")&lt;/b&gt;&lt;br /&gt;
public class TestValidationServlet extends HttpServlet {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
At compile time, add a reference to $WL_HOME/modules/com.bea.core.weblogic.web.api_1.4.0.0.jar to make the annotation available and it'll build and package successfully.&lt;br /&gt;
&lt;br /&gt;
With that small excursion done, and the Servlet able to be deployed to WebLogic Server with the addition of the single @WLServlet annotation, the JPA validation can be tested.&lt;br /&gt;
&lt;br /&gt;
This can be simply done again by injecting the stateless session bean WidgetFacadeLocal using an @EJB annotation, then creating a Widget with a known invalid property, and attempting to persist it through the session bean.&amp;nbsp; Any validation constraints that are violated will be detected and returned in an EJBException that can be checked, and displayed.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;b&gt;@EJB&lt;/b&gt; WidgetFacadeLocal widgetFacade;&lt;br /&gt;
...&lt;br /&gt;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throws ServletException, IOException {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Widget widget = new Widget();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; widget.setName("My Widget");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; widget.setEmail("bogus.email.com");&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; widgetFacade.create(widget);&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (EJBException ejbex) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.printf("&amp;lt;p&amp;gt;EJBException, caused by: %s&amp;lt;/p&amp;gt;", ejbex.getCause().getClass().getName());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;if (ejbex.getCausedByException() instanceof ConstraintViolationException)&lt;/b&gt; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;ConstraintViolationException cve = (ConstraintViolationException) &lt;/b&gt;ejbex.getCausedByException();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.printf("&amp;lt;p&amp;gt;Constraint Validations:&amp;lt;/p&amp;gt;");&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println("&amp;lt;ul&amp;gt;");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; for(ConstraintViolation cv: cve.getConstraintViolations())&lt;/b&gt; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.printf("&amp;lt;li&amp;gt;%s, &amp;lt;b&amp;gt;%S&amp;lt;/b&amp;gt;, %s, &amp;lt;span style='color: red;'&amp;gt;%s&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;b&gt;cv.getRootBeanClass().getSimpleName()&lt;/b&gt;,&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cv.getPropertyPath()&lt;/b&gt;,&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cv.getMessage()&lt;/b&gt;,&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cv.getInvalidValue()&lt;/b&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println("&amp;lt;ul&amp;gt;");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Here the Widget has an email address which is not valid, as well as missing the mandatory pricePerUnit property. &lt;br /&gt;
&lt;br /&gt;
Deploying this to the WebLogic Server 10.3.4 domain used previously with JPA 2.0 enabled, and Bean Validation library added to the server classpath, the simple test shows that the Bean Validations are checked.&amp;nbsp;&amp;nbsp; An exception is returned that contains the set of constraint violations that occurred, which can be displayed to a user.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GN3CBZFt55c/TdH3pY8K6iI/AAAAAAAAAT0/ZxGl4GZM28k/s1600/Screen+shot+2011-05-17+at+1.50.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="1" height="247" src="http://2.bp.blogspot.com/-GN3CBZFt55c/TdH3pY8K6iI/AAAAAAAAAT0/ZxGl4GZM28k/s640/Screen+shot+2011-05-17+at+1.50.16+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
This demonstrates the use of implicit Bean Validation through using JPA 2.0 running on WebLogic Server 10.3.4.&lt;br /&gt;
&lt;br /&gt;
Again, the key is to firstly ensure that the Server ClassPath is set to include the following libraries to expose and enable JPA 2.0 and have the Bean Validation implementation be visible to the JPA 2.0 provider:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;$WLS_HOME/modules/com.oracle.jpa2support_1.0.0.0_2-0.jar&lt;/li&gt;
&lt;li&gt;$WLS_HOME/modules/javax.persistence_1.0.0.0_2-0-0.jar&lt;/li&gt;
&lt;li&gt;$GF_HOME/glassfish3/glassfish/modules/bean-validator.jar&lt;/li&gt;
&lt;/ul&gt;And secondly, ensure that either the default JPA provider on the domain is set to TopLink, or the provider is specifically set to be org.eclipse.persistence.jpa.PersistenceProvider in persistence.xml within the application.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=6VfDLKUqSp0:GQX8QnYmMrY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/6VfDLKUqSp0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/8511279934618462710/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=8511279934618462710&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/8511279934618462710?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/8511279934618462710?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/6VfDLKUqSp0/observing-bean-validation-at-jpa-level.html" title="Observing Bean Validation at JPA Level" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-GN3CBZFt55c/TdH3pY8K6iI/AAAAAAAAAT0/ZxGl4GZM28k/s72-c/Screen+shot+2011-05-17+at+1.50.16+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/observing-bean-validation-at-jpa-level.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQFRHk6eSp7ImA9WhZWFU8.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-5619045853159852358</id><published>2011-05-16T16:13:00.002+09:30</published><updated>2011-05-16T16:15:15.711+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-16T16:15:15.711+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Bean Validation" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><category scheme="http://www.blogger.com/atom/ns#" term="JPA" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans" /><title>JSF 2.0, JPA 2.0 and Bean Validation on WebLogic Server</title><content type="html">For some time now, I’ve been meaning to build a simple application to demonstrate the use of JSF 2.0, JPA 2.0 and Bean Validation with WebLogic Server 10.3.4.&amp;nbsp; But I hadn’t gotten around to it until I had a couple of hours free late last week.&lt;br /&gt;
&lt;br /&gt;
Seeing as I didn’t have all that much time, I thought I’d try and repurpose the Java EE 6 CRUD (create-remove-update-delete) application that NetBeans generates for GlassFish 3.x, and see if I could get it to run on WebLogic Server.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
The short answer to that was a resounding yes, with only a few minor changes or tricks.&lt;br /&gt;
&lt;br /&gt;
In this blog, I’m going to step through what I did and highlight the changes that I played around with in order to make it work.&amp;nbsp; I'm not going to make this a tutorial (at this point) since most of the steps that are required are simply using the NetBeans IDE and its wizards to generate the requisite components and pages.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Developing the Application &lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;The starting point for this app was a single table, Widgets, created in a local Derby database.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Using NetBeans 7.0, a new Java EE Enterprise Application was created, using Java EE 6 and targetted at the GlassFish 3.1 server installed with NetBeans.&amp;nbsp; This produces two child projects: a Web project and an EJB project.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-6BYpuUiLi7U/TdC5-kLSU0I/AAAAAAAAATM/_scu3njvwwE/s1600/Screen+shot+2011-05-16+at+12.38.11+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="235" src="http://4.bp.blogspot.com/-6BYpuUiLi7U/TdC5-kLSU0I/AAAAAAAAATM/_scu3njvwwE/s320/Screen+shot+2011-05-16+at+12.38.11+PM.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-o-BE-RKHXNM/TdC62eD92YI/AAAAAAAAATY/dvkJ7Paayyw/s1600/Screen+shot+2011-05-16+at+12.38.41+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://1.bp.blogspot.com/-o-BE-RKHXNM/TdC62eD92YI/AAAAAAAAATY/dvkJ7Paayyw/s320/Screen+shot+2011-05-16+at+12.38.41+PM.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; In the EJB project, use the "Entity Classes from Database" to generate a JPA 2.0 Entity from the Widget table.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/--r34WIehzN4/TdC6mxghFiI/AAAAAAAAATU/I0AiFQa5UK4/s1600/Screen+shot+2011-05-16+at+12.39.24+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://3.bp.blogspot.com/--r34WIehzN4/TdC6mxghFiI/AAAAAAAAATU/I0AiFQa5UK4/s320/Screen+shot+2011-05-16+at+12.39.24+PM.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Worth pointing out here is the use of the Bean Validation specification to declare constraints on the various fields of the Widget entity.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
I particularly appreciated the smarts NetBeans uses to provide a suggested @Pattern regular expression for an email field&lt;br /&gt;
&lt;br /&gt;
@Pattern(regexp="[a-z0-9!#$%&amp;amp;'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&amp;amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation&lt;br /&gt;
@Size(max = 100)&lt;br /&gt;
@Column(name = "EMAIL")&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
private String email;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Next, invoke the "Sessions Bean For Entity Classes ..." to generate a session facade with CRUD methods for the Widget entity.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/-Kb3DHW9TO1Y/TdC6REcbiYI/AAAAAAAAATQ/gcJgmZ2gqkM/s1600/Screen+shot+2011-05-16+at+12.48.24+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" src="http://3.bp.blogspot.com/-Kb3DHW9TO1Y/TdC6REcbiYI/AAAAAAAAATQ/gcJgmZ2gqkM/s320/Screen+shot+2011-05-16+at+12.48.24+PM.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Worth noting here are two points: &amp;nbsp; First, the use of a Generics based Abstract class for the base CRUD operations, which is then subclassed by the WidgetFacade session bean to work specifically with the Widget entity.&amp;nbsp; Second, the use of the JPA 2.0 Criteria API to build a number of queries in the base class.&lt;br /&gt;
&lt;br /&gt;
public List&amp;lt;T&amp;gt; findRange(int[] range) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; javax.persistence.criteria.CriteriaQuery cq getEntityManager().getCriteriaBuilder().createQuery();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cq.select(cq.from(entityClass));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; javax.persistence.Query q = getEntityManager().createQuery(cq);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; q.setMaxResults(range[1] - range[0]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; q.setFirstResult(range[0]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return q.getResultList();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
This session bean is created with a local interface since the EJB 3.0 implementation in WebLogic Server requires the use of a business interface.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;In the persistence.xml file, a trick worth keeping in mind here which may save you some pain later is to explicitly specify the JPA provider to use.&amp;nbsp; This helps later on when you deploy the completed application to WebLogic Server, where the default JPA provider is Kodo/OpenJPA.&amp;nbsp; This can be overridden at the WLS domain level, but setting it in persistence.xml within the application itself is an easy way to do it now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;provider&amp;gt;org.eclipse.persistence.jpa.PersistenceProvider&amp;lt;/provider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more details on changing the default JPA provider for a WLS domain, see here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://buttso.blogspot.com/2010/05/changing-default-jpa-provider-in.html"&gt;http://buttso.blogspot.com/2010/05/changing-default-jpa-provider-in.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;With the EJB project now complete, the JSF pages can be generated for the application.&amp;nbsp; In the Web project, this is done using the "JSF Pages from Entity Classes ..." wizard.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-Z-irKc1jZFg/TdC5tWBprVI/AAAAAAAAATI/MEJ2KFbP7hg/s1600/Screen+shot+2011-05-16+at+12.49.46+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="269" src="http://1.bp.blogspot.com/-Z-irKc1jZFg/TdC5tWBprVI/AAAAAAAAATI/MEJ2KFbP7hg/s320/Screen+shot+2011-05-16+at+12.49.46+PM.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
What this wizard generates is a set of JSF pages to represent each of the CRUD operations, a Controller ManagedBean to handle the various tasks required by each of the JSF view pages and the data interactions (with paging) and a EJB 3.1 @Stateless session bean to act as a session facade on the Widget entity.&lt;br /&gt;
&lt;br /&gt;
The new EJB in WAR packaging option available with Java EE 6 is not yet available on WebLogic Server, so the first trick here is to change the Web project to use the session facade that has already been generated in the EJB project.&amp;nbsp; This is possible because the NetBeans wizards generate the same underlying code for the session facade whether it is for an EJB specific project or as part of the JSF Pages for Entity Classes wizard.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Delete the session bean bean in the Web project, then adjust the JSF controller to use the local interface for the session bean in the EJB project:&lt;br /&gt;
&lt;br /&gt;
//@EJB&lt;br /&gt;
//private sab.demo.widget.service.WidgetFacade ejbFacade;&lt;br /&gt;
@EJB&lt;br /&gt;
private sab.demo.widget.service.WidgetFacadeLocal ejbFacade;&lt;br /&gt;
&lt;br /&gt;
Note that EJB 3.1 supports a No-Interface view of an EJB, which WebLogic Server doesn't yet support.&amp;nbsp; So here we have changed the injection point to use the Local interface from our EJB project.&lt;br /&gt;
&lt;br /&gt;
There is also a getFacade method which needs this simple type change as well:&lt;br /&gt;
&lt;br /&gt;
//private WidgetFacade getFacade() {&lt;br /&gt;
private WidgetFacadeLocal getFacade() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return ejbFacade;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Delete the persistence.xml file generated within the Web project, since this will now be supplied with the EJB project.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Modify the web.xml file and change the "version" attribute to be "2.5" to specify a valid version for WebLogic Server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;web-app version="2.5" ... &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Using the "New ..." wizard, add a WebLogic Deployment descriptor to the Web project, and specify a shared library reference to the JSF 2.0 shared library that WebLogic Server supplies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;
&amp;lt;weblogic-web-app&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;context-root&amp;gt;Widget&amp;lt;/context-root&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;library-ref&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;library-name&amp;gt;jsf&amp;lt;/library-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;specification-version&amp;gt;2.0&amp;lt;/specification-version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;implementation-version&amp;gt;1.0.0.0_2-0-2&amp;lt;/implementation-version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/library-ref&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;lt;/weblogic-web-app&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the links for more details about JSF 2.0 and WebLogic Server, including instructions for how to deploy and reference the shared-library:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://buttso.blogspot.com/2010/05/jsf-20-support-in-weblogic-server-1033.html"&gt;http://buttso.blogspot.com/2010/05/jsf-20-support-in-weblogic-server-1033.html&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://buttso.blogspot.com/2011/03/jsf-with-managed-beans-and-dependency.html"&gt;http://buttso.blogspot.com/2011/03/jsf-with-managed-beans-and-dependency.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Build the final application into an EAR file that is ready for deployment.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/-U4ZdbrjzS-c/TdC74xwwQ6I/AAAAAAAAATc/9l4Uh19T20Q/s1600/Screen+shot+2011-05-16+at+3.22.59+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-U4ZdbrjzS-c/TdC74xwwQ6I/AAAAAAAAATc/9l4Uh19T20Q/s320/Screen+shot+2011-05-16+at+3.22.59+PM.png" width="267" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;b&gt;Deploying the Application to WebLogic Server&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ExBBbVOiZeM/TdC_1f-YiiI/AAAAAAAAATg/blDLslXNnJs/s1600/Screen+shot+2011-05-16+at+3.39.48+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt; &lt;/a&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;To deploy a JSF 2.0 application to WebLogic Server, the JSF 2.0 shared-library must be deployed.&amp;nbsp; See links referenced above for details on how to do this.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://buttso.blogspot.com/2010/05/jsf-20-support-in-weblogic-server-1033.html"&gt;http://buttso.blogspot.com/2010/05/jsf-20-support-in-weblogic-server-1033.html&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://buttso.blogspot.com/2011/03/jsf-with-managed-beans-and-dependency.html"&gt;http://buttso.blogspot.com/2011/03/jsf-with-managed-beans-and-dependency.html&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;To use JPA 2.0 with WebLogic Server, two optional libraries within the WebLogic Server installation must be placed into the classpath.&amp;nbsp; This can be automated through the use of a SmartUpdate patch, or it can be performed manually by setting a PRE_CLASSPATH environment variable and specifying the required libraries before starting the WebLogic Server domain.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
$ export PRE_CLASSPATH=/Users/sbutton/Java/wls-1035-dev/modules/&lt;b&gt;com.oracle.jpa2support_1.0.0.0_2-0.jar&lt;/b&gt;:/Users/sbutton/Java/wls-1035-dev/modules/&lt;b&gt;javax.persistence_1.0.0.0_2-0-0.jar&lt;br /&gt;
&lt;/b&gt;See the documentation for more details as needed:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#CIHDJHHI"&gt;http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#CIHDJHHI&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;The application is also using the Bean Validation specification which is not supplied with WebLogic Server 10.3.4.&amp;nbsp; To ensure that the JSF 2.0 and JPA 2.0 implementation in TopLink can see the Bean Validation implementation and automatically enlist it's services, I added it as an additional library to the PRE_CLASSPATH environment variable:&lt;br /&gt;
&lt;br /&gt;
$ export PRE_CLASSPATH=${PRE_CLASSPATH):/Users/sbutton/Java/glassfish-31/glassfish3/glassfish/modules/&lt;b&gt;bean-validator.jar&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Note here I am just referencing the library from a local GlassFish installation I have.&amp;nbsp; I could copy this library out into a separate location or even download it independently and reference it.&amp;nbsp; Call me lazy if you will ... :-)&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Start a WebLogic Server domain&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Using the WebLogic Console, configure the required datasource (jdbc/sample) to point at the Derby database and test to ensure it is working.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Using the console, deploy the application.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/-ExBBbVOiZeM/TdC_1f-YiiI/AAAAAAAAATg/blDLslXNnJs/s1600/Screen+shot+2011-05-16+at+3.39.48+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://3.bp.blogspot.com/-ExBBbVOiZeM/TdC_1f-YiiI/AAAAAAAAATg/blDLslXNnJs/s320/Screen+shot+2011-05-16+at+3.39.48+PM.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;b&gt;Test the application&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/b&gt;With the application deployed, it can be tested to observe the JSF 2.0, JPA 2.0 and Bean Validation uses working on WebLogic Server.&lt;br /&gt;
&lt;br /&gt;
For instance, create a new Widget and specify an incorrect email address.&amp;nbsp; You'll see that JSF will automatically detect the invalid value based on the @Pattern constraint set on the Widget entity, and display the accompanying message as an error message on the page.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lxdhjPPOayk/TdDCPOYNgsI/AAAAAAAAATk/JYKMHDfjo3M/s1600/Screen+shot+2011-05-16+at+3.50.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-lxdhjPPOayk/TdDCPOYNgsI/AAAAAAAAATk/JYKMHDfjo3M/s320/Screen+shot+2011-05-16+at+3.50.03+PM.png" width="295" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Correcting the email address value, the entry can be successfully be saved.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oaO4q_mmYQE/TdDC4V5TRtI/AAAAAAAAATo/AZmXdgPqYZM/s1600/Screen+shot+2011-05-16+at+3.52.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="117" src="http://3.bp.blogspot.com/-oaO4q_mmYQE/TdDC4V5TRtI/AAAAAAAAATo/AZmXdgPqYZM/s320/Screen+shot+2011-05-16+at+3.52.57+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Looking at the stdout on the console where the WLS domain was started, the use of JPA 2.0 via EclipseLink and the automatic enlistment of the Bean Validation implementation can be seen in the lines below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;May 16, 2011 3:58:26 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;WebLogicServer&amp;gt; &amp;lt;BEA-000360&amp;gt; &amp;lt;Server started in RUNNING mode&amp;gt; &lt;br /&gt;
May 16, 2011 3:58:40 PM org.hibernate.validator.util.Version &amp;lt;clinit&amp;gt;&lt;br /&gt;
INFO: Hibernate Validator 4.1.0.Final&lt;br /&gt;
May 16, 2011 3:58:40 PM org.hibernate.validator.engine.resolver.DefaultTraversableResolver detectJPA&lt;br /&gt;
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.&lt;br /&gt;
&amp;lt;May 16, 2011 3:58:40 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;EclipseLink&amp;gt; &amp;lt;BEA-2005000&amp;gt; &amp;lt;2011-05-16 15:58:40.781--ServerSession(1625943009)--EclipseLink, version: Eclipse Persistence Services - 2.1.3.v20110304-r9073&amp;gt; &lt;br /&gt;
&amp;lt;May 16, 2011 3:58:40 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;EclipseLink&amp;gt; &amp;lt;BEA-2005000&amp;gt; &amp;lt;2011-05-16 15:58:40.782--ServerSession(1625943009)--Server: 10.3.5.0&amp;gt; &lt;br /&gt;
&amp;lt;May 16, 2011 3:58:41 PM CST&amp;gt; &amp;lt;Notice&amp;gt; &amp;lt;EclipseLink&amp;gt; &amp;lt;BEA-2005000&amp;gt; &amp;lt;2011-05-16 15:58:41.266--ServerSession(1625943009)--file:/Users/sbutton/Projects/Domains/wls1035/servers/AdminServer/tmp/_WL_user/Widget/qb0nwv/Widget-EJB.jar_Widget-EJBPU login successful&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you forget to specify the JPA provider using the &amp;lt;provider&amp;gt; element in config.xml and deploy the application to a default WLS domain, then you may see the following error message when you try and access the application:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-np7pl-Dypno/TdDFM6ooP2I/AAAAAAAAATs/rO1srfl9h9A/s1600/Screen+shot+2011-05-16+at+1.21.44+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="255" src="http://3.bp.blogspot.com/-np7pl-Dypno/TdDFM6ooP2I/AAAAAAAAATs/rO1srfl9h9A/s320/Screen+shot+2011-05-16+at+1.21.44+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
This exception indicates that an application is using the JPA 2.0 API, but WebLogic Server can't find a JPA 2.0 provider.&amp;nbsp; This is the default condition of a WLS domain where the Kodo/Open JPA 1.0 provider is supplied at runtime.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
This can be easily modified as described above by specifying an explicit &amp;lt;provider&amp;gt; value for EclipseLink (or Hibernate if you are using that) or by altering the default JPA provider at the domain level using the WebLogic Console:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-EIqEMnSumUM/TdDGqdKwC2I/AAAAAAAAATw/j5MJCDTQZxI/s1600/Screen+shot+2011-05-16+at+4.08.29+PM.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://1.bp.blogspot.com/-EIqEMnSumUM/TdDGqdKwC2I/AAAAAAAAATw/j5MJCDTQZxI/s400/Screen+shot+2011-05-16+at+4.08.29+PM.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Summary&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
It proved to be quite straight forward to take the Java EE 6 CRUD application generated by NetBeans and alter it slightly to deploy and run successfully on WebLogic Server 10.3.4, using it's JSF 2.0 and JPA 2.0 support.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=FtJANMen140:og6I0A0LMAE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/FtJANMen140" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/5619045853159852358/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=5619045853159852358&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5619045853159852358?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5619045853159852358?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/FtJANMen140/jsf-20-jpa-20-and-bean-validation-on.html" title="JSF 2.0, JPA 2.0 and Bean Validation on WebLogic Server" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-6BYpuUiLi7U/TdC5-kLSU0I/AAAAAAAAATM/_scu3njvwwE/s72-c/Screen+shot+2011-05-16+at+12.38.11+PM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/jsf-20-jpa-20-and-bean-validation-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAEQH85fSp7ImA9WhZWEEo.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-6252848215049853047</id><published>2011-05-11T11:21:00.000+09:30</published><updated>2011-05-11T11:21:41.125+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-11T11:21:41.125+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="jsf" /><title>Markus Quick Tests RichFaces 4.0 on WLS 10.3.4</title><content type="html">Nice to see this blog from Markus Eisele (belatedly on my part) in which he describes how to do a quick test of the RichFaces 4.0 showcase deployed on WLS 10.3.4 using it's optional support for JSF 2.0:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blog.eisele.net/2011/04/running-richfaces-400final-showcase-on.html"&gt;http://blog.eisele.net/2011/04/running-richfaces-400final-showcase-on.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Thanks Markus, will try it out.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=yZx4F5GDg0I:HHK8RMHNTSM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/yZx4F5GDg0I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/6252848215049853047/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=6252848215049853047&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/6252848215049853047?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/6252848215049853047?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/yZx4F5GDg0I/markus-quick-tests-richfaces-40-on-wls.html" title="Markus Quick Tests RichFaces 4.0 on WLS 10.3.4" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/markus-quick-tests-richfaces-40-on-wls.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQCRnw8fCp7ImA9WhZXGU8.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-921061111920021567</id><published>2011-05-09T17:19:00.000+09:30</published><updated>2011-05-09T17:19:27.274+09:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-09T17:19:27.274+09:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><title>WebLogic Server 10.3.5 Available</title><content type="html">Oracle WebLogic Server 10.3.5 was released for download on OTN over the weekend.&lt;br /&gt;
&lt;br /&gt;
See the Quick View/Download page @ &lt;br /&gt;
http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bZSn6lQd7g8/Tceb-ID8C0I/AAAAAAAAATA/qcYkTLjPTTk/s1600/Screen%2Bshot%2B2011-05-09%2Bat%2B5.16.30%2BPM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-bZSn6lQd7g8/Tceb-ID8C0I/AAAAAAAAATA/qcYkTLjPTTk/s1600/Screen%2Bshot%2B2011-05-09%2Bat%2B5.16.30%2BPM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=mc67XmC8ig8:aqBd0-xkKts:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/mc67XmC8ig8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/921061111920021567/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=921061111920021567&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/921061111920021567?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/921061111920021567?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/mc67XmC8ig8/weblogic-server-1035-available.html" title="WebLogic Server 10.3.5 Available" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-bZSn6lQd7g8/Tceb-ID8C0I/AAAAAAAAATA/qcYkTLjPTTk/s72-c/Screen%2Bshot%2B2011-05-09%2Bat%2B5.16.30%2BPM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/05/weblogic-server-1035-available.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEMQno8fSp7ImA9WhZTEkk.&quot;"><id>tag:blogger.com,1999:blog-13556721.post-7805887633979016596</id><published>2011-03-16T14:24:00.001+10:30</published><updated>2011-03-16T14:24:43.475+10:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-16T14:24:43.475+10:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebLogic Server" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBeans. JSF" /><category scheme="http://www.blogger.com/atom/ns#" term="JPA" /><title>Tutorial: JSF 2.0 and JPA 2.0 with WebLogic Server using NetBeans</title><content type="html">The NetBeans team have produced a new tutorial demonstrating using JSF 2.0, JPA 2.0 with WebLogic Server 10.3.4 and NetBeans 7.0.&amp;nbsp;&amp;nbsp; The application uses the JPA entity and JSF page generation wizards to quickly produce a working application based on a sample schema.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&amp;nbsp;&lt;a href="http://netbeans.org/kb/docs/web/jsf-jpa-weblogic.html"&gt;Developing an Enterprise Application for Oracle WebLogic Server&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
From the WebLogic Server perspective, this tutorial demonstrates some of the nice integration points NetBeans now has with WebLogic Server.&lt;br /&gt;
&lt;br /&gt;
For instance, the tutorial shows how NetBeans discovers and presents the set of WebLogic Server supplied JSF shared-libraries to the developer to select from.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://netbeans.org/images_www/articles/70/web/jsf-weblogic/projectwizard-serverlib.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://netbeans.org/images_www/articles/70/web/jsf-weblogic/projectwizard-serverlib.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
It shows the resulting automatic configuration of the weblogic deployment descriptor to reference the chosen shared library, and finally it shows the automatic deployment that of the selected JSF shared library that NetBeans performs if necessary.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://netbeans.org/images_www/articles/70/web/jsf-weblogic/install-libraries-dialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="95" src="http://netbeans.org/images_www/articles/70/web/jsf-weblogic/install-libraries-dialog.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
This all goes to make the use of JSF with WebLogic Server very straight forward.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The tutorial also highlights the simple approach NetBeans exposes for developers to &lt;a href="http://netbeans.org/kb/docs/web/jsf-jpa-weblogic.html#01e"&gt;Enable JPA 2.0&lt;/a&gt; on the target WebLogic Server domain that is being used for the application.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://netbeans.org/images_www/articles/70/web/jsf-weblogic/weblogic-properties-platform.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="246" src="http://netbeans.org/images_www/articles/70/web/jsf-weblogic/weblogic-properties-platform.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
All together this is a tutorial well worth taking a look at and stepping through to look at the generated code and pages.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheButtsoBlathers?a=T6FjTDSmb8o:Q2mC1T-8hI0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheButtsoBlathers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/T6FjTDSmb8o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/7805887633979016596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=7805887633979016596&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7805887633979016596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/7805887633979016596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheButtsoBlathers/~3/T6FjTDSmb8o/tutorial-jsf-20-and-jpa-20-with.html" title="Tutorial: JSF 2.0 and JPA 2.0 with WebLogic Server using NetBeans" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/-PiUQuNIOWJs/TVSw3aee66I/AAAAAAAAAQo/IKq6k69n124/s220/Photo%2Bon%2B2010-06-10%2Bat%2B16.09.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://buttso.blogspot.com/2011/03/tutorial-jsf-20-and-jpa-20-with.html</feedburner:origLink></entry></feed>
