<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7164928681095736918</id><updated>2011-11-27T17:59:39.470-08:00</updated><title type='text'>Technical Jig</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-4727252537606567781</id><published>2011-08-05T12:33:00.000-07:00</published><updated>2011-08-05T12:34:04.930-07:00</updated><title type='text'>debugging ssl certificates jvm option</title><content type='html'>-Djavax.net.debug=ssl,handshake,trustmanager&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-4727252537606567781?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/4727252537606567781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=4727252537606567781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4727252537606567781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4727252537606567781'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2011/08/debugging-ssl-certificates-jvm-option.html' title='debugging ssl certificates jvm option'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-3082035251773633469</id><published>2010-08-17T14:03:00.000-07:00</published><updated>2010-08-18T07:45:37.459-07:00</updated><title type='text'>Session Tracking in Java</title><content type='html'>&lt;div&gt;Maintaining client sessions is the ability for servers to associate multiple stateless http requests within a single session context.  Often, implementing session seems to be magic, but an actual mechanism exists by which this is implemented.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The main requirement for maintaing client sessions is the server's ability to associate one request with a previous request.  In order to do this, a session id must be generated and passed back from the server to client.  The client will then pass this session id in subsequent requests to associate these with the previous request.   The main difference between the various methods of maintaing a session is the form of the session id, such as the way the session id is generated or how it is stored on the client and/or on the server.    &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Java web servers provide a default implementation using Http Session.  However, there are several other ways.  The server&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;1) Using HttpSession&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Generation: web server&lt;/div&gt;&lt;div&gt;Client Location: cookies or url&lt;br /&gt;Server Location: web server&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Java web servers by default can maintain http sessions by generating at request a session id, or the JSESSION_ID.  Once the session has been established, the Java web developer can save any type of information in the new session when processing the request.  The web server is responsible for storing this session and any saved information without any additional coding. Once the request has been processed, a JSESSION ID is passed back to the browser as a cookie.  The browser saves the cookie.  On subsequent requests to the same web server, the cookie is passed back to the server, and the web server picks up the session cookie and retrieves the JSESSION ID.  Once the session id has been identified, the session associated with the id is set on the request. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;2) Encrypt and Decrypt&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;meta charset="utf-8"&gt;&lt;div&gt;&lt;br /&gt;Generation: servlet&lt;/div&gt;&lt;div&gt;Client Location: cookies&lt;br /&gt;Server Location: N/A&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When the client makes a request with a particular user-specific id, the server can generate the session id from this user id.  The user id &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;3) Memcached&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;Generation: servlet&lt;/div&gt;&lt;div&gt;Client Location: cookies&lt;br /&gt;Server Location: N/A&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-3082035251773633469?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/3082035251773633469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=3082035251773633469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/3082035251773633469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/3082035251773633469'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2010/08/session-tracking-in-java.html' title='Session Tracking in Java'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-5171451434085020452</id><published>2010-07-27T10:51:00.000-07:00</published><updated>2010-07-27T10:56:13.964-07:00</updated><title type='text'>LDAP Modify - Changing your password</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;File contents: mod_attribute.ldif &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;dn: uid=mtan,ou=People,dc=mlbam,dc=com&lt;/div&gt;&lt;div&gt;changetype: modify&lt;/div&gt;&lt;div&gt;replace: userPassword&lt;/div&gt;&lt;div&gt;userPassword: {clear text password}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ldapmodify -x -h ldap01.mlbam.com -p 389 -D "uid=mtan,ou=People,dc=mlbam,dc=com" -f /Users/tan/mod_attribute.ldif  -W&lt;/div&gt;&lt;div&gt;Enter LDAP Password: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enter your current password.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Possible outcomes: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;additional info: invalid password syntax: no numeric character&lt;/div&gt;&lt;div&gt;This indicates your password must contain a numeric character&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;additional info: invalid password syntax: dictionary word match&lt;/div&gt;&lt;div&gt;This indicates your new password contains a dictionary word, which is not allowed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;additional info: invalid password syntax: no special character&lt;/div&gt;&lt;div&gt;This indicates your new password must contain a special character. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SASL/EXTERNAL authentication started&lt;/div&gt;&lt;div&gt;ldap_sasl_interactive_bind_s: Unknown authentication method (-6)&lt;/div&gt;&lt;div&gt;        additional info: SASL(-4): no mechanism available: &lt;/div&gt;&lt;/div&gt;&lt;div&gt;You should use the -x option for simple authentication.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-5171451434085020452?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/5171451434085020452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=5171451434085020452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5171451434085020452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5171451434085020452'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2010/07/ldap-modify-changing-your-password.html' title='LDAP Modify - Changing your password'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7263934259941518973</id><published>2009-09-29T14:12:00.000-07:00</published><updated>2009-09-30T07:29:19.587-07:00</updated><title type='text'>Mule 2.x Start Error</title><content type='html'>&lt;div&gt;&lt;b&gt;Message&lt;/b&gt;: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Root Exception stack trace:&lt;/div&gt;&lt;div&gt;oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'&lt;/div&gt;&lt;div&gt;        at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:418)&lt;/div&gt;&lt;div&gt;        at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:284)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solution&lt;/b&gt;: &lt;/div&gt;&lt;div&gt;The Mule 2.x app does not contain the correct Spring library.  Please include the spring-context-2.5.jar &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7263934259941518973?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7263934259941518973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7263934259941518973' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7263934259941518973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7263934259941518973'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/09/mule-2x-start-error.html' title='Mule 2.x Start Error'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-4795092604033700280</id><published>2009-08-20T14:54:00.001-07:00</published><updated>2009-08-20T14:54:52.331-07:00</updated><title type='text'>Always go to the Source</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-4795092604033700280?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/4795092604033700280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=4795092604033700280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4795092604033700280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4795092604033700280'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/08/always-go-to-source.html' title='Always go to the Source'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-2779535931534176296</id><published>2009-07-29T14:32:00.000-07:00</published><updated>2009-08-12T10:34:35.117-07:00</updated><title type='text'>Java Performance Diagnosis Tools</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(81, 81, 81); line-height: 19px; font-family:arial, -webkit-fantasy;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;prstat / prstat -mLp &lt;pid&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="  color: rgb(81, 81, 81); line-height: 19px; font-family:arial, -webkit-fantasy;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;the last number of each column is the NLWP (number light weight processes aka threads) that are currently active.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial, fantasy;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;prstat -mLp &lt;/span&gt;&lt;pid&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; will show the current threads for one process. The last column is the LWPID (light weight process ID)&lt;/span&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial, fantasy;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial, fantasy;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;LWPID’s increment by one, hence the highest LWPID indicates how many threads have been launched since process creation.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ps -fLp &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;pid&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;indicates how many threads have been launched since process creation.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;truss -f -&lt;/span&gt;p &lt;/span&gt;&lt;pid&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;/&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;thread&gt;&lt;/thread&gt;&lt;/span&gt;&lt;/pid&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:arial, fantasy;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;new system calls for one thread&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); line-height: normal; "&gt;/usr/jdk/jdk1.6.0_10/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -p 52074&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(102, 102, 102); line-height: normal; "&gt;starts an rmi server on the local host to be able to monitor application running on this host&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;/usr/jdk/jdk1.6.0_10/bin/jps -q&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"   style="font-family:arial, -webkit-fantasy;color:#666666;"&gt;determines the running java processes&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;References: &lt;/span&gt;&lt;div&gt;&lt;a href="http://prefetch.net/blog/index.php/2008/01/16/monitoring-garbage-collection-with-jstat/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://prefetch.net/blog/index.php/2008/01/16/monitoring-garbage-collection-with-jstat/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-2779535931534176296?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/2779535931534176296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=2779535931534176296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2779535931534176296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2779535931534176296'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/07/java-performance-diagnosis-tools.html' title='Java Performance Diagnosis Tools'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-4690702621148677251</id><published>2009-07-29T07:32:00.000-07:00</published><updated>2009-07-29T07:56:28.907-07:00</updated><title type='text'>Curl Command</title><content type='html'>curl  -x (proxy.host)&lt;proxy-host&gt;:(proxy.port)&lt;proxy-port&gt; http://www.google.com&lt;/proxy-port&gt;&lt;/proxy-host&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-4690702621148677251?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/4690702621148677251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=4690702621148677251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4690702621148677251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4690702621148677251'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/07/curl-command.html' title='Curl Command'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-706103140837293243</id><published>2009-05-21T09:52:00.001-07:00</published><updated>2009-05-21T09:52:19.602-07:00</updated><title type='text'>Heap Dump</title><content type='html'>jmap -dump:format=b,file=heap.bin 518&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-706103140837293243?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/706103140837293243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=706103140837293243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/706103140837293243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/706103140837293243'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/05/heap-dump.html' title='Heap Dump'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-9200817237231666555</id><published>2009-02-11T12:06:00.000-08:00</published><updated>2009-02-11T13:27:26.580-08:00</updated><title type='text'>Mule 1.x: Spring Integration</title><content type='html'>Integrating a Spring configuration file into a Mule configuration has been the most frustrating thing in the world... well at least for me.&lt;br /&gt;&lt;br /&gt;Mule provides documentation for using Spring with Mule 1.x in the following URL:&lt;br /&gt;&lt;a href="http://www.mulesource.org/display/MULEUSER/Using+Spring+as+a+Component+Factory"&gt;http://www.mulesource.org/display/MULEUSER/Using+Spring+as+a+Component+Factory&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, after following these instructions, there are a couple of things that were left undocumented for the spring application context xml to be integrated successfully.  The following are these undocumented notes:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;The Spring application context xml file should not include a XML schema definition.  It should specify the Mule-specific DTD.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example Spring XML:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;beans xmlns="http://www.springframework.org/schema/beans" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://www.springframework.org/schema/beans               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     ......&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order for the Spring XML file to be read successfully by the Mule Server, the above Spring XML file must modified to use the DTD file, and not the XML Schema as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;!DOCTYPE beans PUBLIC "-//MuleSource   //DTD mule-configuration XML V1.0//EN"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;        "&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;http://mule.mulesource.org/dtds/spring-beans.dtd&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;beans&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;    .......&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you do not do this, the Mule server will throw the following exception and cause you frustration beyond belief (jk):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;nested exception is org.xml.sax.SAXParseException: &lt;/span&gt;&lt;line&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;: XML-20149: (Error) Element 'beans' used but not declared.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/line&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;When specifying the &amp;lt;contianer-context&amp;gt; element, remember to define it at the appropriate place in the mule configuration xml.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="line1"&gt;&lt;span class="markupdeclaration"&gt;&amp;lt;!ELEMENT mule-configuration (description?,environment-properties?,mule-environment-properties?,container-context*,security-manager?,&lt;br /&gt;transaction-manager?,agents?,connector*,endpoint-identifiers?,transformers?,global-endpoints?,&lt;br /&gt;         interceptor-stack*,model*)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;From the above DTD element, the container-context element should be after the mule-environment-properties element and before any connector, transformer, and model elements.&lt;br /&gt;&lt;br /&gt;If this is not the case, the Mule Server will throw the following exception:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SAXParseException: &lt;line&gt;: XML-20148: (Error) Invalid element 'container-context' in content of 'mule-configuration', expected elements '[connector, endpoint-identifiers, transformers, global-endpoints, interceptor-stack, model]'.&lt;/line&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It will indicate the mule-configuration DTD element that does not even contain the container-context element, which may be quite confusing.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;So, it seems most of these are related to DTD and XML schema definitions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-9200817237231666555?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/9200817237231666555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=9200817237231666555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/9200817237231666555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/9200817237231666555'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/02/mule-1x-spring-integration.html' title='Mule 1.x: Spring Integration'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7244267669149006285</id><published>2009-01-23T13:54:00.001-08:00</published><updated>2009-01-23T13:54:51.168-08:00</updated><title type='text'>Esper</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7244267669149006285?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7244267669149006285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7244267669149006285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7244267669149006285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7244267669149006285'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/01/esper.html' title='Esper'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-2150878365179268185</id><published>2009-01-05T08:10:00.001-08:00</published><updated>2009-01-05T08:10:58.810-08:00</updated><title type='text'>Oracle SQL: Calculating on a Running Window</title><content type='html'>select t1me, m1n, m1n_1, m1n_2, m1n_3, m1n_4, m1n+m1n_1+m1n_2+m1n_3+m1n_4 fiveminspan  from&lt;br /&gt;(select&lt;br /&gt;trunc(record_timestamp,'MI') t1me,&lt;br /&gt;count(*),&lt;br /&gt;LEAD(count(*), 0, -1) OVER (ORDER BY trunc(record_timestamp,'MI') ASC) m1n,&lt;br /&gt;LEAD(count(*), 1, -1) OVER (ORDER BY trunc(record_timestamp,'MI') ASC) m1n_1,&lt;br /&gt;LEAD(count(*), 2, -1) OVER (ORDER BY trunc(record_timestamp,'MI') ASC) m1n_2,&lt;br /&gt;LEAD(count(*), 3, -1) OVER (ORDER BY trunc(record_timestamp,'MI') ASC) m1n_3,&lt;br /&gt;LEAD(count(*), 4, -1) OVER (ORDER BY trunc(record_timestamp,'MI') ASC) m1n_4&lt;br /&gt;from REP_OWNER.BAM_MEDIA_REPORT where&lt;br /&gt;record_timestamp &gt; TO_DATE('03/30/2008', 'MM/DD/YYYY') and&lt;br /&gt;record_timestamp &lt; TO_DATE('09/29/2008', 'MM/DD/YYYY')&lt;br /&gt;group by trunc(record_timestamp,'MI')&lt;br /&gt;order by count(*) desc)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-2150878365179268185?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/2150878365179268185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=2150878365179268185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2150878365179268185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2150878365179268185'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2009/01/oracle-sql-calculating-on-running.html' title='Oracle SQL: Calculating on a Running Window'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6174937977161861964</id><published>2008-07-30T14:48:00.000-07:00</published><updated>2008-07-30T15:04:47.599-07:00</updated><title type='text'>Lesson of the Day: Data Integrity</title><content type='html'>Often, one needs to make sure that the data of one service/application is not inappropriately saved/cached in another service/application.  This ensures the  integrity of the data.  &lt;br /&gt;&lt;br /&gt;A single service/application may be responsible for providing a particular type of data.  This data should not be cached or saved in another application.  In this way, all data of this type is solely accessed from this application/service.  All applications/services requesting this data would have to always retrieve it from this single service/application.  Typically, however, other applications/services may reference data within this single application with an identifier or id which can be used and passed to the single service to access the actual original data.  Therefore, data the actual data would not be replicated by the other services/application.&lt;br /&gt;&lt;br /&gt;If the actual data  were to be saved/cached in another application/service in order that the original service does not have to be called and thus improve performance, data integrity cannot be ensured.  The data would then inadvertently be saved in two locations.  If the data needs to change, one would have to update these two locations to ensure the integrity of the data.&lt;br /&gt;&lt;br /&gt;This is a basic notion of application design.&lt;br /&gt;&lt;br /&gt;Therefore, one needs to be careful in caching actual data that can be accessed from another service as opposed to simply saving the reference to the data which can be used for accessing the data in the originating service/application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6174937977161861964?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6174937977161861964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6174937977161861964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6174937977161861964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6174937977161861964'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/07/lesson-of-day-data-integrity.html' title='Lesson of the Day: Data Integrity'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-9051465197240179589</id><published>2008-05-21T07:31:00.001-07:00</published><updated>2008-05-21T07:49:46.593-07:00</updated><title type='text'>Database Views</title><content type='html'>Views should be created if a query is required for accessing data from multiple tables and multiple rows of multiple tables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-9051465197240179589?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/9051465197240179589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=9051465197240179589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/9051465197240179589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/9051465197240179589'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/05/database-views.html' title='Database Views'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-1199654193315916245</id><published>2008-05-01T08:10:00.000-07:00</published><updated>2008-05-01T08:13:55.092-07:00</updated><title type='text'>CORE3282: Crash occurred in function</title><content type='html'>[01/May/2008:11:05:23] fine ( 6208): Successfully initialized web application environment for virtual server [https-bamws]&lt;br /&gt;[01/May/2008:11:05:35] info ( 6208): CORE3282: stdout: WebappClassLoader:     Additional JARs have been added : 'hibernate-3.2.3.jar'&lt;br /&gt;[01/May/2008:11:05:39] info ( 6208): WEB2798: [] ServletContext.log(): WEB3945: Scratch dir for the JSP engine is: /opt/sunone/https-mtan/ClassCache/https-bamws/default-webapp&lt;br /&gt;[01/May/2008:11:05:39] info ( 6208): WEB2798: [] ServletContext.log(): WEB3947: IMPORTANT: Do not modify the generated servlets&lt;br /&gt;[01/May/2008:11:05:44] catastrophe ( 6208): CORE3260: Server crash detected (signal SIGSEGV)&lt;br /&gt;[01/May/2008:11:05:44] info ( 6208): CORE3262: Crash occurred in function pblock*NVPairs::dup()const from module /opt/sunone/bin/https/lib/libns-httpd40.so&lt;br /&gt;&lt;br /&gt;Scenario:&lt;br /&gt;&lt;br /&gt;I removed all jars from WEB-INF/lib with rm -r *, populated it with a new lib directory, restarted the server and the above error occurred.  Restarting the server every time still caused this same error. &lt;br /&gt;&lt;br /&gt;I tried to remove all references to this web app in the server.xml file, but the error still occurred.&lt;br /&gt;&lt;br /&gt;Cause:&lt;br /&gt;&lt;br /&gt;This could have been possibly caused by the removal of jars that while the server was still running.  Perhaps, an artifact of the jar remained after subsequent restarts and would continuously cause the crash on the server.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;br /&gt;I removed the hibernate-3.2.3.jar from this lib directory and the web server now starts without error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-1199654193315916245?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/1199654193315916245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=1199654193315916245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1199654193315916245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1199654193315916245'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/05/core3282.html' title='CORE3282: Crash occurred in function'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-1431649946801686170</id><published>2008-04-28T09:37:00.001-07:00</published><updated>2008-04-28T09:46:27.439-07:00</updated><title type='text'>NoSuchMethodError: javax.xml.parsers.DocumnentBuilderFactory.getSchema()</title><content type='html'>&lt;blockquote&gt;java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilderFactory.getSchema()Ljavax/xml/validation/Schema;&lt;br /&gt;  at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.&lt;init&gt;(Unknown Source)&lt;br /&gt;  at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)&lt;clinit&gt;&lt;init&gt;&lt;init&gt;&lt;init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/clinit&gt;&lt;/init&gt;&lt;/blockquote&gt;&lt;br /&gt;Cause: You are using a different version of the DocumentBuilderFactory class&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;br /&gt;This version of the javax.xml.parsers.DocumentBuilderFactory is used by the xercesImpl.jar and is defined in the jaxp-api.jar&lt;br /&gt;&lt;br /&gt;This class is defined in the following jars:&lt;br /&gt;xml-apis.jar&lt;br /&gt;xmlParserAPIs.jar&lt;br /&gt;xercesImpl-2.8.1.jar&lt;br /&gt;jaxp-api.jar&lt;br /&gt;&lt;br /&gt;In addition, this class is also include in the JVM.  The JVM implementation of this class does not define a getSchema() method.&lt;br /&gt;&lt;br /&gt;The only jar that contains an implementation of the DocmentBuilderFactory with the getSchema() method defined is the jaxp-api.jar.   In order for this implementation to be used instead of the JVM's implementation or the other jar's implementation, you must either endorse this jar or put this jaxp-api.jar at the top of the classpath.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-1431649946801686170?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/1431649946801686170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=1431649946801686170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1431649946801686170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1431649946801686170'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/04/nosuchmethoderror-javaxxmlparsersdocumn.html' title='NoSuchMethodError: javax.xml.parsers.DocumnentBuilderFactory.getSchema()'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-1727574964673629955</id><published>2008-04-28T08:20:00.001-07:00</published><updated>2008-04-28T08:30:50.210-07:00</updated><title type='text'>NoClassDefFoundError: com/sun/org/apache/xerces/internal/dom/DocumentImpl</title><content type='html'>&lt;blockquote&gt; java.lang.NoClassDefFoundError: com/sun/org/apache/xerces/internal/dom/DocumentImpl&lt;br /&gt;   at java.lang.ClassLoader.defineClass0(Native Method)&lt;br /&gt;..........&lt;br /&gt;   at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)&lt;br /&gt;   at com.sun.xml.messaging.saaj.soap.SOAPPartImpl.&lt;init&gt;(SOAPPartImpl.java:63)&lt;br /&gt;   at com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.&lt;init&gt;(SOAPPart1_1Impl.java:29)&lt;br /&gt;   at com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl.getSOAPPart(Message1_1Impl.java:52)&lt;br /&gt;   at &lt;/init&gt;&lt;/init&gt;&lt;/blockquote&gt;&lt;br /&gt;Cause: Missing a class&lt;br /&gt;Solution:&lt;br /&gt;There are two versions of the xercesImpl.jar that define the different classes in different packages.  These packages are the following:&lt;br /&gt;&lt;br /&gt;com.sun.org.apache&lt;br /&gt;org.apache&lt;br /&gt;&lt;br /&gt;The DocumentImpl class is defined in the following packages of each corresponding jar:&lt;br /&gt;com.sun.org.apache.exerces.internal.dom&lt;br /&gt;org.apache.xerces.dom&lt;br /&gt;&lt;br /&gt;The jar that contains the DocumentImpl of the NoClassDefFoundError is contained in the first jar.  Please include this jar in the classpath before the second version of the jar.&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;http://mail-archives.apache.org/mod_mbox/xerces-j-users/200407.mbox/%3C40F0D3AD.3050201@sun.com%3E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-1727574964673629955?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/1727574964673629955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=1727574964673629955' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1727574964673629955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1727574964673629955'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/04/noclassdeffounderror.html' title='NoClassDefFoundError: com/sun/org/apache/xerces/internal/dom/DocumentImpl'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-2344894771521649685</id><published>2008-04-21T09:40:00.000-07:00</published><updated>2008-04-21T09:41:30.949-07:00</updated><title type='text'>Mule Error: Application does not seem to be starting or is hanging</title><content type='html'>Error:&lt;br /&gt;Launching a JVM...&lt;br /&gt;Error [125] in bind() call!&lt;br /&gt;err:: Address already in use&lt;br /&gt;Socket transport failed to init.&lt;br /&gt;Transport dt_socket failed to initialize, rc = -1.&lt;br /&gt;FATAL ERROR in native method: No transports initialized&lt;br /&gt;JVM exited while loading the application.&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;The JVM is being launched with a debugger enabled and could possibly be&lt;br /&gt;suspended.  To avoid unwanted shutdowns, timeouts will be disabled,&lt;br /&gt;removing the ability to detect and restart frozen JVMs.&lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;The logs display the above error.&lt;br /&gt;&lt;br /&gt;This indicates that the port for debugging is already in use, and not the actual mule application's port.&lt;br /&gt;&lt;br /&gt;Change the debug port in the wrapper.conf.&lt;br /&gt;&lt;br /&gt;wrapper.java.additional.5=-Xrunjdwp:transport=dt_socket,address=5295,server=y,suspend=y&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-2344894771521649685?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/2344894771521649685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=2344894771521649685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2344894771521649685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2344894771521649685'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/04/mule-error-does-not-seem-to-be-starting.html' title='Mule Error: Application does not seem to be starting or is hanging'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-324671465624542292</id><published>2008-04-08T21:23:00.000-07:00</published><updated>2008-04-15T15:26:37.535-07:00</updated><title type='text'>CSS</title><content type='html'>So, I'm creating a website and I'm noting some things down about CSS I'm learning from an actual site.  Cool dudes.&lt;br /&gt;&lt;br /&gt;CSS Styles&lt;br /&gt;&lt;br /&gt;position: relative |&lt;br /&gt;&lt;br /&gt;color:  #ABC123&lt;br /&gt;background-color: #ABC123&lt;br /&gt;font:&lt;br /&gt;font-size: XXXpx | XXX&lt;br /&gt;width: XXXpx&lt;br /&gt;margin: XXXpx&lt;br /&gt;margin-bottom: XXXpx&lt;br /&gt;margin-right:&lt;br /&gt;padding:&lt;br /&gt;text-align: center |&lt;br /&gt;border: XXX&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-324671465624542292?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/324671465624542292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=324671465624542292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/324671465624542292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/324671465624542292'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/04/css.html' title='CSS'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6194360603309481083</id><published>2008-03-31T12:21:00.000-07:00</published><updated>2008-03-31T12:30:01.487-07:00</updated><title type='text'>Lesson of the Day</title><content type='html'>"We learn something new everyday!"  As a tribute to this saying... &lt;br /&gt;&lt;br /&gt;We have this large million of records table.  An audit table exists to record every single update or deletion of a row in this table.  We were thinking of creating an index on this audit table where no indexes existed before.  However, every update/deletion would require an update of this new index, therefore, slowing the performance of write operations on this table. &lt;br /&gt;&lt;br /&gt;Lesson of the Day: Indexes, although improves the performance of read operations, leads to more overheard if this table is often updated.&lt;br /&gt;&lt;br /&gt;I know i'm dumb..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6194360603309481083?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6194360603309481083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6194360603309481083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6194360603309481083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6194360603309481083'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/03/lesson-of-day.html' title='Lesson of the Day'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6822209811986851007</id><published>2008-03-29T08:26:00.000-07:00</published><updated>2008-03-29T08:30:50.988-07:00</updated><title type='text'>Flex Error: ReferenceError: Error #1065</title><content type='html'>This error often refers to missing assets in the swf file that is expected to be there.  For example, if you get the following error:&lt;br /&gt;&lt;br /&gt;Variable ExampleView__embed_mxml__assets_png_example_picture_png_1012766830 is not defined.&lt;br /&gt;&lt;br /&gt;It refers to a missing asset in an mxml file called ExampleView attempting to reference a png file as in the VBox below:&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:VBox backgroundImage="@Embed(source='/assets/png/example_picture.png')" width="100%"&lt;br /&gt;&lt;br /&gt;In this instance, you must remember to include these assets into the compiled swf files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6822209811986851007?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6822209811986851007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6822209811986851007' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6822209811986851007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6822209811986851007'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/03/flex-error-referenceerror-error-1065.html' title='Flex Error: ReferenceError: Error #1065'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7467381632707827482</id><published>2008-03-14T22:42:00.000-07:00</published><updated>2008-03-14T22:59:15.821-07:00</updated><title type='text'>Flash Global Security Settings: Windows vs. Macs</title><content type='html'>There seems to be a slight difference between how global security settings are set on Windows and Macs browsers.  To note, when you set the global security settings, they are set "globally" for the machine and not for the particular browser where the security setting was set.&lt;br /&gt;&lt;br /&gt;On Macs, you can just specify the swf file in the global security settings.  The swf file will load successfully and any external interface registered functions can be successfully called.&lt;br /&gt;&lt;br /&gt;On Windows, however, specifying the swf file in the global security settings will allow the swf file to load correctly.  But, this does not allow registered external interface functions to be called.  It will cause the following js error:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new; color: rgb(204, 0, 0);"&gt;Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.].&lt;/blockquote&gt;In order for external interface functions to be called, you must also specify the folder/file where the swf file is located.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7467381632707827482?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7467381632707827482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7467381632707827482' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7467381632707827482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7467381632707827482'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/03/flash-global-security-settings-windows.html' title='Flash Global Security Settings: Windows vs. Macs'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-5652424742694270675</id><published>2008-03-12T08:26:00.000-07:00</published><updated>2008-03-12T08:31:27.888-07:00</updated><title type='text'>CVS Commands</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Creating a New Tag from an Existing Tag&lt;br /&gt;&lt;/span&gt;cvs -d :ext:{user}@{host}:/{cvs directory} -q rtag -r {existing tag} {new tag} {cvs directory}&lt;user&gt;&lt;host&gt;&lt;directory&gt; &lt;current&gt;&lt;new&gt;&lt;cvs&gt;&lt;/cvs&gt;&lt;/new&gt;&lt;/current&gt;&lt;/directory&gt;&lt;/host&gt;&lt;/user&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-5652424742694270675?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/5652424742694270675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=5652424742694270675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5652424742694270675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5652424742694270675'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/03/cvs-commands.html' title='CVS Commands'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-1609300667825201864</id><published>2008-02-28T11:04:00.000-08:00</published><updated>2008-02-28T11:05:06.423-08:00</updated><title type='text'>java.lang.UnsatisfiedLinkError: create_stmt_c_copy</title><content type='html'>Googling this, this is a result of old oracle jars.  Update your oracle jars to the latest or the right version.  This should fix this error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-1609300667825201864?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/1609300667825201864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=1609300667825201864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1609300667825201864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/1609300667825201864'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/02/javalangunsatisfiedlinkerror.html' title='java.lang.UnsatisfiedLinkError: create_stmt_c_copy'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6529094587753770141</id><published>2008-02-28T10:19:00.000-08:00</published><updated>2008-02-28T10:23:22.023-08:00</updated><title type='text'>Mule Error: ObjectNotFoundException Object " null" not found in container</title><content type='html'>This error is not a very descriptive message.  What is actually happening in the mule app is that the UMO is attempting to be created, however, it is throwing an error during its creation.  The UMO is never then added to the container and therefore cannot be found in the container.&lt;br /&gt;&lt;br /&gt;In the example that I encountered this error message, the creation of the com.bamnetworks.reporting.DataReporter fails to be created, because of a misconfiguration in the database and the reporting config.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6529094587753770141?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6529094587753770141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6529094587753770141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6529094587753770141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6529094587753770141'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/02/mule-error-objectnotfoundexception.html' title='Mule Error: ObjectNotFoundException Object &quot;&lt;class.name&gt; null&quot; not found in container'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7569215266852746672</id><published>2008-02-11T10:13:00.000-08:00</published><updated>2008-02-11T10:20:45.711-08:00</updated><title type='text'>SWFObject not working</title><content type='html'>Please ensure that the &lt;span style="font-weight: bold;"&gt;div&lt;/span&gt; in which the flash embed object will be written to is defined before the inclusion of the external javascript file that defines the SWFObject&lt;br /&gt;&lt;br /&gt;Otherwise, it will not be able to write to a div tag that does not yet exist.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="flash_videoplayer"&amp;gt;&amp;lt;strong&amp;gt;You need to upgrade your&lt;br /&gt;Flash Player&amp;lt;/strong&amp;gt; This is replaced by the Flash content. Place your alternate&lt;br /&gt;content here and users without the Flash plugin or with Javascript&lt;br /&gt;turned off will see this. Content here allows you to leave out &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt;&lt;br /&gt;tags. Include a link to &amp;lt;a href="swfobject.html?detectflash=false"&amp;gt;bypass the detection&amp;lt;/a&amp;gt; if you wish.&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="js/flvplayer_2.js"&amp;gt;&lt;br /&gt;&lt;br /&gt;==========&lt;br /&gt;The above flvplayer_2.js file contains the code below:&lt;br /&gt;&lt;br /&gt;           var swfObject = new SWFObject("FlvPlayer2.swf", "flvPlayer2", flv_width, flv_height, "9");&lt;br /&gt;           swfObject.addParam("allowScriptAccess", "always");  &lt;br /&gt;           swfObject.addParam("allowFullScreen", "true");&lt;br /&gt;           swfObject.addParam("salign", "tl");&lt;br /&gt;           swfObject.addParam("menu", "false");&lt;br /&gt;           swfObject.addParam("wmode", "transparent");&lt;br /&gt;           swfObject.write("flash_videoplayer");&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7569215266852746672?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7569215266852746672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7569215266852746672' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7569215266852746672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7569215266852746672'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/02/swfobject-not-working.html' title='SWFObject not working'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-8417557925083123598</id><published>2008-02-07T09:39:00.000-08:00</published><updated>2008-02-07T09:42:24.588-08:00</updated><title type='text'>Removing a CVS tag</title><content type='html'>The following commands will allow you to execute the cvs command without having to be in a cvs directory:&lt;br /&gt;&lt;br /&gt;export CVS_RSH=ssh&lt;br /&gt;cvs -d :ext:&lt;user&gt;{user}@&lt;host-name&gt;{host name or IP}:/source/cvs -q rtag -d {tag} {absolute location to module}&lt;tag&gt; &lt;absolute-location-of-module&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;example:&lt;br /&gt;cvs -d :ext:mtan@172.16.100.123:/source/cvs -q rtag -d MLB_&lt;br /&gt;QA bamnet/tiers/web/axis2/modules/appaccount/auth-service&lt;/absolute-location-of-module&gt;&lt;/tag&gt;&lt;/host-name&gt;&lt;/user&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-8417557925083123598?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/8417557925083123598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=8417557925083123598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/8417557925083123598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/8417557925083123598'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/02/removing-cvs-tag.html' title='Removing a CVS tag'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-2482816658767398863</id><published>2008-01-16T09:29:00.000-08:00</published><updated>2008-01-16T09:35:39.000-08:00</updated><title type='text'>Axis2 Container Error:  Processing Operations Modules ClassNotFoundException Error in loading message receiver</title><content type='html'>Error:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;org.apache.axis2.deployment.DeploymentException: ClassNotFoundException Error in l&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;oading message receiver tier.ws.migration.axis2.MLBUserWSInOutMessageReceiver; nested exception is: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt; java.lang.ClassNotFoundException: tier.ws.migration.axis2.MLBUserWSInOutMessageRec&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;eiver at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;329)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cause:&lt;br /&gt;You are attempting to use a service compiled in JDK 1.5 in a Axis2 container running under JDK 1.4.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;Compile the service using JDK 1.4&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://www.mail-archive.com/axis-user@ws.apache.org/msg21397.html"&gt;http://www.mail-archive.com/axis-user@ws.apache.org/msg21397.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://issues.apache.org/jira/browse/AXIS2-1670"&gt;http://issues.apache.org/jira/browse/AXIS2-1670&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-2482816658767398863?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/2482816658767398863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=2482816658767398863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2482816658767398863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2482816658767398863'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/01/axis2-container-error-processing.html' title='Axis2 Container Error:  Processing Operations Modules ClassNotFoundException Error in loading message receiver'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7175464563876958001</id><published>2008-01-14T10:02:00.001-08:00</published><updated>2008-07-18T14:03:15.978-07:00</updated><title type='text'>Decompressing a tgz file</title><content type='html'>gzcat &lt;file&gt;  (file.tgz) | tar xvf -&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;tar -x&lt;/file&gt;z&lt;file&gt;vf (file&lt;/file&gt;.tgz&lt;file&gt;)&lt;br /&gt;&lt;/file&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7175464563876958001?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7175464563876958001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7175464563876958001' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7175464563876958001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7175464563876958001'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2008/01/decompressing-tgz-file.html' title='Decompressing a tgz file'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-5046215740019635459</id><published>2007-12-19T15:01:00.000-08:00</published><updated>2007-12-20T07:17:54.419-08:00</updated><title type='text'>Sun Java System Web Server 6.1 - Proxying</title><content type='html'>We are currently inquiring about the use of directives as a way to proxy requests from one url to another server.  Proxies can be used for different use cases. For one, if you would like to simply redirect requests from a legacy web service to a new web service, you could want to use proxies.&lt;br /&gt;&lt;br /&gt;There are three options available to proxy requests.  Each provide a partial solution for proxying but none provide a full one.   They are listed below in order of complexity.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:lucida grande;font-size:180%;"  &gt;A) Using the NameTrans 'redirect' directive.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The documentation indicates that this directive can redirect URLs coming into the web server to another web server at a particular path.  It is configured in the following way:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Steps:&lt;/span&gt;&lt;br /&gt;1) Make a copy of the obj.conf in the same folder and rename the file as desired.  This file will contain the NameTrans directive to redirect the requests.&lt;br /&gt;2) Add the following directive to the new copy of the  obj.conf before the NameTrans ntrans-j2ee directive, like below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;object name="default"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;Object name="default"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AuthTrans fn="match-browser" browser="*MSIE*" ssl-unclean-shutdown="true"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NameTrans fn=redirect from=/ws/services/ url=http://dev-a.services.bamnetworks.com:52070/ws/services/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NameTrans fn="ntrans-j2ee" name="j2ee"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;3) Configure a new virtual server class &lt;vsclass&gt;(VSCLASS) in server.xml.&lt;br /&gt;4) Configure the new virutal server class to use the new obj.conf like below:&lt;br /&gt;&lt;br /&gt;         &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;vsclass id="vsclass1" objectfile="obj.conf"&gt;&lt;/vsclass&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    &lt;vsclass id="vsclass2" objectfile="obj2.conf"&gt;&lt;/vsclass&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;VSCLASS id="vsclass2" objectfile="obj2.conf" &amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5) Add the web application instance on which requests will be proxied under this virtual server class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Disadvantages:&lt;br /&gt;&lt;/span&gt;1) &lt;span style="font-style: italic;"&gt;Redirect Response code:&lt;/span&gt; This directive actually will return a response code of 301 Permanently Moved back to the client requesting the server.  The client is responsible for automatically redirecting to the new URL.  This is however not default behavior of web service clients, but is for web browsers.&lt;br /&gt;&lt;br /&gt;Note: We tried to use this solution for redirecting our web service clients but the generated client does not automatically redirect to the new URL given this HTTP response code.&lt;br /&gt;&lt;br /&gt;2) &lt;span style="font-style: italic;"&gt;Cross-browser issues&lt;/span&gt;: This directive does not solve cross-browser issues either.  Although the browser will redirect automatically to a web service, it will not be able to accept incoming data from a domain different from the domain of the current page making the HTTP requests.&lt;br /&gt;&lt;br /&gt;&lt;/vsclass&gt;&lt;span style=";font-family:lucida grande;font-size:180%;"  &gt;B) Using the Reverse Proxy Plug-in.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-5046215740019635459?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/5046215740019635459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=5046215740019635459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5046215740019635459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5046215740019635459'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/12/sun-java-system-web-server-61-proxying.html' title='Sun Java System Web Server 6.1 - Proxying'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-645873123606691273</id><published>2007-12-10T07:26:00.000-08:00</published><updated>2007-12-10T07:48:28.842-08:00</updated><title type='text'>Actionscript Arrays displayed as objects using typeof operator</title><content type='html'>The &lt;span style="font-style: italic;"&gt;typeof&lt;/span&gt; operator applied to an Array object does not display as "array".  It still displays as "object".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-645873123606691273?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/645873123606691273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=645873123606691273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/645873123606691273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/645873123606691273'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/12/declare-your-flash-arrays.html' title='Actionscript Arrays displayed as objects using typeof operator'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7078783625391097277</id><published>2007-12-03T07:55:00.000-08:00</published><updated>2007-12-03T08:00:57.688-08:00</updated><title type='text'>How to Retrieve FlashVars Data in ActionScript 3.0</title><content type='html'>You would like to retrieve variables from the embed Flash object as in the following example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;root.loaderInfo.parameters&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;References:  &lt;span style="font-size:100%;"&gt;&lt;a href="http://www.quip.net/blog/2007/flash/how-to-retrieve-flashvars-data-in-actionscript-30" rel="bookmark" title="Permanent Link: How to Retrieve FlashVars Data in ActionScript 3.0"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;How to Retrieve FlashVars Data in ActionScript 3.0&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7078783625391097277?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7078783625391097277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7078783625391097277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7078783625391097277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7078783625391097277'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/12/how-to-retrieve-flashvars-data-in.html' title='How to Retrieve FlashVars Data in ActionScript 3.0'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-9089868127121444853</id><published>2007-11-15T13:26:00.001-08:00</published><updated>2008-08-18T08:08:42.417-07:00</updated><title type='text'>Struts Error Message - ???en.ProfileProperty.error.message???</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;???en.ProfileProperty.error.message???&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;environment&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;You have a Struts web application. The error messages are configured through the applicationResoources.properties file.  Whenever these properties file is changed, the error messages may now be configured d&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;ifferently and will result in the above unrecognizable error message.  This seems to be happening in only this particular error message.  Other messages are working correctly.  &lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;br /&gt;possible causes:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;The following Struts configuration files may be related to the misconfiguration:&lt;br /&gt;&lt;br /&gt;struts-config.xml&lt;br /&gt;applicationResources.xml&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;solution&lt;/span&gt;&lt;br /&gt;You may either include dom.jar or xml-apis.jar in your classpath. &lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-9089868127121444853?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/9089868127121444853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=9089868127121444853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/9089868127121444853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/9089868127121444853'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/11/struts-error-message.html' title='Struts Error Message - ???en.ProfileProperty.error.message???'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7947746144484924238</id><published>2007-10-26T21:30:00.000-07:00</published><updated>2007-11-12T10:53:35.143-08:00</updated><title type='text'>Flash verus Java: Differences</title><content type='html'>&lt;span style=";font-family:verdana;font-size:100%;"  &gt;As a Java developer, moving to Flash should not be too difficult of a task.  Actionscript 3.0 contains many features of the Java language, but also has tremendous amount of other features related to animations that Java does not have. It is these latter features that will require a slower learning curve for a Java developer.  Here are couple of important similarities and differences that I have encountered related to the design, structure and syntax of the Actionscript language as I was reading a book.  These differences are more oriented toward a Java developer moving to Actionscript as opposed to a Flash developer moving to Java.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:180%;"  &gt;Conceptual Differences&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;1.  Variable declaration&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Variables in Actionscript do not have a type, as opposed to Java where all variables must be assigned a type.  Although one could stipulate that assigning a Java variable as a java.lang.Object could simulate an untyped Actionscript variable, the same can be done to an Actionscript variable.  Although, the variable of a type Object is still a typed variable.   The difference lies in the fact that an untyped Actionscript variable can be assigned a primitive data type value or an Object type, where in Java it would not be possible for a single variable to be assigned both a primitive data type and an Object at the same time.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;2. Function declaration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Despite the syntactical differences, there are also two conceptual differences in function/method declarations between Actionscript and Java.&lt;br /&gt;&lt;br /&gt;(1) The first difference is that functions do not need to declare a return type.  This is to support older versions of Actionscript.&lt;br /&gt;&lt;br /&gt;(2) The second is that functions can declare initial values for its parameters in Actionscript.  Initialized parameters of a function are not required to be passed to the function, while uninitialized parameters of a function are required to be passed.  Whether they will cause compile errors is something i do not yet know.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;3.  Function passed as value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;One of the more powerful features in Actionscript is the ability to assign a variable to a reference to a function. This is quite a powerful feature in Actionscript and perhaps provides a short cut for coding.&lt;br /&gt;&lt;br /&gt;This feature is actually used for event handling and animation, the forte of Actionscript.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:130%;"&gt;4. Nested Functions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Functions can be declared within another function.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;5.  Package-level, Source-File-Level, And Global Functions&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;One can create functions within a package (package-level).  Package-level functions are accessible only within the package.&lt;br /&gt;&lt;br /&gt;Source-file-level functions are rarely used because they can be replaced with private static functions within a package.&lt;br /&gt;&lt;br /&gt;Global functions are defined in the unnamed package and are accessible by any class or package without an import.&lt;br /&gt;&lt;br /&gt;All these are not concepts within Java.  In Java, all functions are always associated with a class.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:130%;"&gt;6.  Protected and default access-control modifiers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The protected and default access modifiers of Actionscript and Java have different definitions.   The protected modifier in Java allows classes within the same package and any subclasses to access the class or variable on which the protected modifier has been declared, while in Actionscript, the protected modifier allows only subclasses to access the class or variable.  Therefore, the Actionscript modifier is more restrictive, but in my opinion, makes more sense.&lt;br /&gt;&lt;br /&gt;The default modifier in Java, which is designated with no keyword but aka package-private, only allows classes within the same package to access the class or variable, while, in Actionscript, the default or &lt;span style="font-style: italic;"&gt;internal &lt;/span&gt;modifier allows classes within the same package &lt;span style="font-style: italic;"&gt;and&lt;/span&gt; subclasses to access the class or variable.  Essentially, the internal modifier has the same access control as in Java's protected modifier.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;8.  Overloading Methods in Subclasses&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;9.  No Abstract Classes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;10.  Reflection replaced with built-in operators.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;11.  Arrays are different in Actionscript.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Arrays in Actionscript are not associated with a particular class or type as in Java.  So, there is only one array type in Actionscript as opposed to Java where there can be an infinite number of array types according to the type the array has been declared with.  This single array type in Actionscript is used to hold all types within the same array.&lt;br /&gt;&lt;br /&gt;The array in Actionscript is also dynamically sized and therefore will never throw an error if the initial capacity of the array has been exceeded when attempting to add new elements beyond the size of the array.  In Java, an array is always initialized with an initial capacity and cannot be changed after instantiation.  Instead, the ArrayList can be used in place of the fixed-sized array.&lt;br /&gt;&lt;br /&gt;Unlike the Java array, the Actionscript array has methods used for modifying its contents.  Both array types allow you to directly modify its contents using the bracket notation.  However, the Actionscript array defines modification methods, listed in the following: push, unshift, splice, shift, pop, concat, delete.  This allows the array to be used as a stack.&lt;br /&gt;&lt;br /&gt;One other trivial but nice feature of the Actionscript array is that it prints out as a comma-delimited list of element values.  No more weird string representations of arrays! (Athough in Java 1.5, there is a new method that prints out Arrays nicely, Arrays.toString()).&lt;br /&gt;&lt;br /&gt;12.  Dynamic Actionscript&lt;br /&gt;&lt;br /&gt;An entirely different concept in Actionscript is the ability to dynamically create or add new instance variables and methods to classes or dynamically create new classes.  There is no analogous concept in Java.&lt;br /&gt;&lt;br /&gt;Only Actionscript classes that have been defined as&lt;br /&gt;&lt;br /&gt;13. Actionscript Lookup Tables versus Java Collections Map&lt;br /&gt;&lt;br /&gt;The Java Collections framework has revolutionalized the way Java developers use data structures in their programs.  The lead designer of the Collections Framework, &lt;a href="http://www.informit.com/authors/author_bio.aspx?ISBN=032133678X&amp;amp;rl=1"&gt;Joshua Bloch&lt;/a&gt;, who also wrote a highly acclaimed and one of the most useful Java programming books, called &lt;a href="http://www.google.com/search?q=effective+java&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:en-US:official&amp;amp;client=firefox-a"&gt;Effective Java&lt;/a&gt;, is a prominent Java architect among the Java community.  His framework has won an award for Best Java Class Library.&lt;br /&gt;&lt;br /&gt;One of the collection classes in the framework is a Map.  There is not equivalent class in Actionscript.  Instead, the ability to dynamically add instance variables to a dynamic object replaces the Map concept.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:180%;"  &gt;Feature Differences&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1.  Setter / Getter functions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:130%;"&gt;2.  Constants and the &lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;final&lt;/span&gt;&lt;span style="font-size:130%;"&gt; modifier for instance variables.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:130%;"&gt;3.  The switch statement is more powerful in Actionscript.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;The Java switch statement only allows the primitive data types to used as values in the switch statement.   One of the complaints in Java is that you cannot use Strings or perhaps Objects within the switch statement.  Fortunately, in Actionscript, you can!  However, there is fine print related with this feature.  In a switch statement, it uses a strict equality operator on determining equality of the switch values.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;4.  Actionscript has additional operators that Java does not have.  Some are quite powerful.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;Some of these additional operators include those that backwards-compatible for older versions of Actionscript.  These will not be included here as they should not be used in new code.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;5.  Actionscript has built-in XML operators.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:180%;"&gt;Syntactical Differences&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1.  Constructors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;2.  Overriding methods&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;3.  void vs. null&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:180%;"&gt;Conceptual Similarities&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1.  Object-oriented programming&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Actionscript 3.0 contains interfaces, classes, instance methods, static methods, instance variables, static variables.  &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7947746144484924238?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7947746144484924238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7947746144484924238' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7947746144484924238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7947746144484924238'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/10/flash-verus-java-differences.html' title='Flash verus Java: Differences'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7994364484229692040</id><published>2007-10-23T11:26:00.000-07:00</published><updated>2007-11-13T15:30:14.661-08:00</updated><title type='text'>Flash Questions</title><content type='html'>1.  Can two flash players embedded on the same page talk to each other?&lt;br /&gt;&lt;br /&gt;2. Is it typical for flash players to be configured through a separate config file located on the machine?&lt;br /&gt;&lt;br /&gt;3. NetStream is responsible for playing&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7994364484229692040?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7994364484229692040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7994364484229692040' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7994364484229692040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7994364484229692040'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/10/flash-questions.html' title='Flash Questions'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-8913528188699929603</id><published>2007-10-22T07:44:00.001-07:00</published><updated>2007-10-22T08:28:21.621-07:00</updated><title type='text'>Java To XML Technologies</title><content type='html'>I am trying to find the most suitable Java to XML utility that will provide easy to read XML that defines a Java object.  Here are some sample ones below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;1.  &lt;a href="http://java.sun.com/products/jfc/tsc/articles/persistence4/"&gt;XML Encoder&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;sample:&lt;br /&gt;&lt;br /&gt;JFrame class&lt;br /&gt;&lt;br /&gt;XML:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt; &amp;lt;java version="1.0" class="java.beans.XMLDecoder"&amp;gt;&lt;br /&gt; &amp;lt;object class="javax.swing.JFrame"&amp;gt;&lt;br /&gt;   &amp;lt;void property="name"&amp;gt;&lt;br /&gt;     &amp;lt;string&amp;gt;frame1&amp;lt;/string&amp;gt;&lt;br /&gt;   &amp;lt;/void&amp;gt;&lt;br /&gt;   &amp;lt;void property="bounds"&amp;gt;&lt;br /&gt;     &amp;lt;object class="java.awt.Rectangle"&amp;gt;&lt;br /&gt;       &amp;lt;int&amp;gt;0&amp;lt;/int&amp;gt;&lt;br /&gt;       &amp;lt;int&amp;gt;0&amp;lt;/int&amp;gt;&lt;br /&gt;       &amp;lt;int&amp;gt;200&amp;lt;/int&amp;gt;&lt;br /&gt;       &amp;lt;int&amp;gt;200&amp;lt;/int&amp;gt;&lt;br /&gt;     &amp;lt;/object&amp;gt;&lt;br /&gt;   &amp;lt;/void&amp;gt;&lt;br /&gt;   &amp;lt;void property="contentPane"&amp;gt;&lt;br /&gt;     &amp;lt;void method="add"&amp;gt;&lt;br /&gt;       &amp;lt;object class="javax.swing.JButton"&amp;gt;&lt;br /&gt;         &amp;lt;void property="label"&amp;gt;&lt;br /&gt;           &amp;lt;string&amp;gt;Hello&amp;lt;/string&amp;gt;&lt;br /&gt;         &amp;lt;/void&amp;gt;&lt;br /&gt;       &amp;lt;/object&amp;gt;&lt;br /&gt;     &amp;lt;/void&amp;gt;&lt;br /&gt;   &amp;lt;/void&amp;gt;&lt;br /&gt;   &amp;lt;void property="visible"&amp;gt;&lt;br /&gt;     &amp;lt;boolean&amp;gt;true&amp;lt;/boolean&amp;gt;&lt;br /&gt;   &amp;lt;/void&amp;gt;&lt;br /&gt; &amp;lt;/object&amp;gt;&lt;br /&gt; &amp;lt;/java&amp;gt;&lt;br /&gt;advantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;completely comprehensive&lt;/li&gt;&lt;li&gt;part of the Java API&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;verbose&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2.  &lt;a href="http://www.jsx.org/"&gt;JSX&lt;/a&gt; - Java Serialization to XML&lt;/span&gt;&lt;a href="http://www.jsx.org/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sample XML:&lt;br /&gt;N/A&lt;br /&gt;&lt;br /&gt;advantages:&lt;br /&gt;&lt;br /&gt;disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;not mature product&lt;br /&gt;&lt;/li&gt;&lt;li&gt;not free&lt;/li&gt;&lt;li&gt;no sample provided&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;3.  &lt;a href="http://xstream.codehaus.org/"&gt;XStream&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;sample:&lt;br /&gt;&lt;br /&gt;Java:&lt;br /&gt;&lt;pre&gt;public class Person {&lt;br /&gt;private String firstname;&lt;br /&gt;private String lastname;&lt;br /&gt;private PhoneNumber phone;&lt;br /&gt;private PhoneNumber fax;&lt;br /&gt;// ... constructors and methods&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class PhoneNumber {&lt;br /&gt;private int code;&lt;br /&gt;private String number;&lt;br /&gt;// ... constructors and methods&lt;br /&gt;}&lt;/pre&gt;XML:&lt;br /&gt;&lt;pre&gt;&lt;person&gt;&amp;lt;person&amp;gt;&lt;br /&gt;&amp;lt;firstname&amp;gt;Joe&amp;lt;/firstname&amp;gt;&lt;br /&gt;&amp;lt;lastname&amp;gt;Walnes&amp;lt;/lastname&amp;gt;&lt;br /&gt;&amp;lt;phone&amp;gt;&lt;br /&gt;&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;&lt;br /&gt;&amp;lt;number&amp;gt;1234-456&amp;lt;/number&amp;gt;&lt;br /&gt;&amp;lt;/phone&amp;gt;&lt;br /&gt;&amp;lt;fax&amp;gt;&lt;br /&gt;&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;&lt;br /&gt;&amp;lt;number&amp;gt;9999-999&amp;lt;/number&amp;gt;&lt;br /&gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;&amp;lt;/person&amp;gt;&lt;fax&gt;&lt;/fax&gt;&lt;/person&gt;&lt;/pre&gt;&lt;br /&gt;advantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;no mappings required&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;disadvantages:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;4. &lt;a href="http://www.castor.org/"&gt;Castor&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;References: &lt;a href="http://javaboutique.internet.com/tutorials/jx/index-3.html"&gt;Java Boutique Tutorial:  Java To XML and Back Again with Castor XML&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sample:&lt;br /&gt;&lt;br /&gt;Java:&lt;br /&gt;&lt;pre&gt;private List myList = new ArrayList();&lt;br /&gt;&lt;br /&gt;public void setMyList(List myList) {&lt;br /&gt;this.myList = myList;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public List getMyList() {&lt;br /&gt;return this.myList;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Person(String name, String email, String phone, List myList) {&lt;br /&gt;this.name = name;&lt;br /&gt;this.email = email;&lt;br /&gt;this.phone = phone;&lt;br /&gt;this.myList = myList;&lt;br /&gt;}&lt;/pre&gt;XML:&lt;br /&gt;&lt;pre&gt;&lt;person&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;person&amp;gt;&lt;br /&gt;&amp;lt;myList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:type="java:java.util.String"&amp;gt;&lt;br /&gt;List#1&lt;br /&gt;&amp;lt;/myList&amp;gt;&lt;br /&gt;&amp;lt;myList xsi:type="java:java.util.String"&amp;gt;&lt;br /&gt;List#2&lt;br /&gt;&amp;lt;/myList&amp;gt;&lt;br /&gt;&amp;lt;email&amp;gt;prokhorenko@gmail.com&amp;lt;/email&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;Olexandr Prokhorenko&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;phone&amp;gt;123-555-1234&amp;lt;/phone&amp;gt;&lt;br /&gt;&amp;lt;/person&amp;gt;&lt;fax&gt;&lt;/fax&gt;&lt;/person&gt;&lt;/pre&gt;advantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;comprehensive&lt;/li&gt;&lt;li&gt;mature product&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;requires a mapping file&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;5. &lt;a href="https://java2xml.dev.java.net/"&gt;Java2XML&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;References: &lt;a href="http://javaboutique.internet.com/tutorials/jx/index-3.html"&gt;Java Boutique Tutorial:  Java To XML and Back Again with Castor XML&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sample:&lt;br /&gt;&lt;br /&gt;Java:&lt;br /&gt;&lt;pre&gt;public class HelloWorld&lt;br /&gt;extends Thread&lt;br /&gt;{&lt;br /&gt;private int N;&lt;br /&gt;&lt;br /&gt;private long sleep;&lt;br /&gt;&lt;br /&gt;public HelloWorld(int N, long sleep)&lt;br /&gt;{&lt;br /&gt;this.N = N;&lt;br /&gt;this.sleep = sleep;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void run()&lt;br /&gt;{&lt;br /&gt;for (int i = 0; i &lt; hw =" new"&gt; XML:&lt;br /&gt;&lt;pre&gt;&lt;person&gt;&amp;lt;!-- Generated by Java2XML http://java2xml.dev.java.net/ --&amp;gt;&lt;br /&gt;&amp;lt;java-source-program&amp;gt;&lt;br /&gt;&amp;lt;java-class-file name="helloworld.java"&amp;gt;&lt;br /&gt;  &amp;lt;import module="java.util.*"/&amp;gt;&lt;br /&gt;  &amp;lt;class name="HelloWorld" visibility="public"&amp;gt;&lt;br /&gt;      &amp;lt;superclass name="Thread"/&amp;gt;&lt;br /&gt;      &amp;lt;field name="N" visibility="private"&amp;gt;&lt;br /&gt;&amp;lt;type primitive="true" name="int"/&amp;gt;&lt;br /&gt;      &amp;lt;/field&amp;gt;&lt;br /&gt;      &amp;lt;field name="sleep" visibility="private"&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;type primitive="true" name="long"/&amp;gt;&lt;br /&gt;      &amp;lt;/field&amp;gt;&lt;br /&gt;      &amp;lt;constructor visibility="public" name="HelloWorld"&amp;gt;&lt;br /&gt;          &amp;lt;formal-arguments&amp;gt;&lt;br /&gt;              &amp;lt;formal-argument name="N"&amp;gt;&lt;br /&gt;                  &amp;lt;type primitive="true" name="int"/&amp;gt;&lt;br /&gt;              &amp;lt;/formal-argument&amp;gt;&lt;br /&gt;              &amp;lt;formal-argument name="sleep"&amp;gt;&lt;br /&gt;                  &amp;lt;type primitive="true" name="long"/&amp;gt;&lt;br /&gt;&lt;br /&gt;              &amp;lt;/formal-argument&amp;gt;&lt;br /&gt;          &amp;lt;/formal-arguments&amp;gt;&lt;br /&gt;          &amp;lt;assignment-expr op="="&amp;gt;&lt;br /&gt;              &amp;lt;lvalue&amp;gt;&lt;br /&gt;                  &amp;lt;field-access field="N"&amp;gt;&lt;br /&gt;                      &amp;lt;this/&amp;gt;&lt;br /&gt;                  &amp;lt;/field-access&amp;gt;&lt;br /&gt;              &amp;lt;/lvalue&amp;gt;&lt;br /&gt;              &amp;lt;var-ref name="N"/&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;/assignment-expr&amp;gt;&lt;br /&gt;          &amp;lt;assignment-expr op="="&amp;gt;&lt;br /&gt;              &amp;lt;lvalue&amp;gt;&lt;br /&gt;                  &amp;lt;field-access field="sleep"&amp;gt;&lt;br /&gt;                      &amp;lt;this/&amp;gt;&lt;br /&gt;                  &amp;lt;/field-access&amp;gt;&lt;br /&gt;              &amp;lt;/lvalue&amp;gt;&lt;br /&gt;              &amp;lt;var-ref name="sleep"/&amp;gt;&lt;br /&gt;          &amp;lt;/assignment-expr&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/constructor&amp;gt;&lt;br /&gt;      &amp;lt;method name="run" visibility="public"&amp;gt;&lt;br /&gt;          &amp;lt;type name="void" primitive="true"/&amp;gt;&lt;br /&gt;          &amp;lt;formal-arguments/&amp;gt;&lt;br /&gt;          &amp;lt;block&amp;gt;&lt;br /&gt;              &amp;lt;loop kind="for"&amp;gt;&lt;br /&gt;                  &amp;lt;init&amp;gt;&lt;br /&gt;                      &amp;lt;local-variable name="i"&amp;gt;&lt;br /&gt;                          &amp;lt;type primitive="true" name="int"/&amp;gt;&lt;br /&gt;&lt;br /&gt;                          &amp;lt;literal-number kind="interger" value="0"/&amp;gt;&lt;br /&gt;                      &amp;lt;/local-variable&amp;gt;&lt;br /&gt;                  &amp;lt;/init&amp;gt;&lt;br /&gt;                  &amp;lt;test&amp;gt;&lt;br /&gt;                      &amp;lt;binary-expr op="&amp;lt;"&amp;gt;&lt;br /&gt;                          &amp;lt;var-ref name="i"/&amp;gt;&lt;br /&gt;                          &amp;lt;field-access field="N"&amp;gt;&lt;br /&gt;                              &amp;lt;this/&amp;gt;&lt;br /&gt;                          &amp;lt;/field-access&amp;gt;&lt;br /&gt;&lt;br /&gt;                      &amp;lt;/binary-expr&amp;gt;&lt;br /&gt;                  &amp;lt;/test&amp;gt;&lt;br /&gt;                  &amp;lt;update&amp;gt;&lt;br /&gt;                      &amp;lt;unary-expr op="++" post="true"&amp;gt;&lt;br /&gt;                          &amp;lt;var-ref name="i"/&amp;gt;&lt;br /&gt;                      &amp;lt;/unary-expr&amp;gt;&lt;br /&gt;                  &amp;lt;/update&amp;gt;&lt;br /&gt;                  &amp;lt;block&amp;gt;&lt;br /&gt;                      &amp;lt;send message="println"&amp;gt;&lt;br /&gt;&lt;br /&gt;                          &amp;lt;target&amp;gt;&lt;br /&gt;                              &amp;lt;field-access field="out"&amp;gt;&lt;br /&gt;                                  &amp;lt;var-ref name="System"/&amp;gt;&lt;br /&gt;                              &amp;lt;/field-access&amp;gt;&lt;br /&gt;                          &amp;lt;/target&amp;gt;&lt;br /&gt;                          &amp;lt;arguments&amp;gt;&lt;br /&gt;                              &amp;lt;literal-string value=""Hello World""/&amp;gt;&lt;br /&gt;                          &amp;lt;/arguments&amp;gt;&lt;br /&gt;                      &amp;lt;/send&amp;gt;&lt;br /&gt;&lt;br /&gt;                      &amp;lt;try&amp;gt;&lt;br /&gt;                          &amp;lt;block&amp;gt;&lt;br /&gt;                              &amp;lt;send message="sleep"&amp;gt;&lt;br /&gt;                                  &amp;lt;target&amp;gt;&lt;br /&gt;                                      &amp;lt;var-ref name="Thread"/&amp;gt;&lt;br /&gt;                                  &amp;lt;/target&amp;gt;&lt;br /&gt;                                  &amp;lt;arguments&amp;gt;&lt;br /&gt;                                      &amp;lt;var-ref name="sleep"/&amp;gt;&lt;br /&gt;                                  &amp;lt;/arguments&amp;gt;&lt;br /&gt;&lt;br /&gt;                              &amp;lt;/send&amp;gt;&lt;br /&gt;                          &amp;lt;/block&amp;gt;&lt;br /&gt;                          &amp;lt;catch&amp;gt;&lt;br /&gt;                              &amp;lt;formal-argument name="e"&amp;gt;&lt;br /&gt;                                  &amp;lt;type name="InterruptedException"/&amp;gt;&lt;br /&gt;                              &amp;lt;/formal-argument&amp;gt;&lt;br /&gt;                              &amp;lt;block&amp;gt;&lt;br /&gt;                                  &amp;lt;send message="printStackTrace"&amp;gt;&lt;br /&gt;                                      &amp;lt;target&amp;gt;&lt;br /&gt;&lt;br /&gt;                                          &amp;lt;var-ref name="e"/&amp;gt;&lt;br /&gt;                                      &amp;lt;/target&amp;gt;&lt;br /&gt;                                      &amp;lt;arguments/&amp;gt;&lt;br /&gt;                                  &amp;lt;/send&amp;gt;&lt;br /&gt;                              &amp;lt;/block&amp;gt;&lt;br /&gt;                          &amp;lt;/catch&amp;gt;&lt;br /&gt;                      &amp;lt;/try&amp;gt;&lt;br /&gt;                  &amp;lt;/block&amp;gt;&lt;br /&gt;              &amp;lt;/loop&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;/block&amp;gt;&lt;br /&gt;      &amp;lt;/method&amp;gt;&lt;br /&gt;      &amp;lt;method name="main" visibility="public" static="true"&amp;gt;&lt;br /&gt;          &amp;lt;type name="void" primitive="true"/&amp;gt;&lt;br /&gt;          &amp;lt;formal-arguments&amp;gt;&lt;br /&gt;              &amp;lt;formal-argument name="args"&amp;gt;&lt;br /&gt;                  &amp;lt;type name="String" dimensions="1"/&amp;gt;&lt;br /&gt;              &amp;lt;/formal-argument&amp;gt;&lt;br /&gt;          &amp;lt;/formal-arguments&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;block&amp;gt;&lt;br /&gt;              &amp;lt;local-variable name="hw"&amp;gt;&lt;br /&gt;                  &amp;lt;type name="HelloWorld"/&amp;gt;&lt;br /&gt;                  &amp;lt;new&amp;gt;&lt;br /&gt;                      &amp;lt;type name="HelloWorld"/&amp;gt;&lt;br /&gt;                      &amp;lt;arguments&amp;gt;&lt;br /&gt;                          &amp;lt;literal-number kind="interger" value="10"/&amp;gt;&lt;br /&gt;                          &amp;lt;literal-number kind="interger" value="1000"/&amp;gt;&lt;br /&gt;                      &amp;lt;/arguments&amp;gt;&lt;br /&gt;&lt;br /&gt;                  &amp;lt;/new&amp;gt;&lt;br /&gt;              &amp;lt;/local-variable&amp;gt;&lt;br /&gt;              &amp;lt;send message="start"&amp;gt;&lt;br /&gt;                  &amp;lt;target&amp;gt;&lt;br /&gt;                      &amp;lt;var-ref name="hw"/&amp;gt;&lt;br /&gt;                  &amp;lt;/target&amp;gt;&lt;br /&gt;                  &amp;lt;arguments/&amp;gt;&lt;br /&gt;              &amp;lt;/send&amp;gt;&lt;br /&gt;          &amp;lt;/block&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/method&amp;gt;&lt;br /&gt;  &amp;lt;/class&amp;gt;&lt;br /&gt;&amp;lt;/java-class-file&amp;gt;&lt;br /&gt;&amp;lt;/java-source-program&amp;gt;&lt;br /&gt;&lt;fax&gt;&lt;/fax&gt;&lt;/person&gt;&lt;/pre&gt; advantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;comprehensive&lt;br /&gt;&lt;/li&gt;&lt;li&gt;mature product&lt;br /&gt;&lt;/li&gt;&lt;li&gt;free&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;complicated XML&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;6.  Jato&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;References: &lt;a href="http://www.javaworld.com/javaworld/jw-04-2001/jw-0413-jato2.html?page=2"&gt;Javaworld Article: Jato: The new kid on the open source block&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;disadvatages:&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt; fairly new product&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;7.  &lt;a href="http://jibx.sourceforge.net/"&gt;JiBX&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;advantages&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;disadvantages:&lt;br /&gt;&lt;/pre&gt; &lt;ul&gt;&lt;li&gt;&lt;pre&gt;requires binding file to define the XML &lt;/pre&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-8913528188699929603?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/8913528188699929603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=8913528188699929603' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/8913528188699929603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/8913528188699929603'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/10/java-to-xml-technologies.html' title='Java To XML Technologies'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-454377284136821472</id><published>2007-10-16T13:13:00.000-07:00</published><updated>2008-04-14T13:40:45.943-07:00</updated><title type='text'>JAXRPC Error -  java.lang.ClassCastException</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; java.lang.ClassCastException&lt;br /&gt;  at com.sun.xml.rpc.client.StubBase._postSendingHook(StubBase.java:231)&lt;br /&gt;  at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:324)&lt;br /&gt;  at com.bamnetworks.services.boc.csp.client.impl.jaxrpc.generated.CspWsInterface_Stub.getPlanSummary(CspWsInterface_Stub.java:86)&lt;br /&gt;  at com.bamnetworks.services.boc.csp.client.CspClient.getMnCollegescholarshipInterface(CspClient.java:63)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;environment&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;JAXRPC client resides inside Axis2 container.&lt;br /&gt;The following jars are included in the Axis2 service lib: saaj-api.jar and saaj-impl.jar.&lt;br /&gt;&lt;br /&gt;However, the Axis2 container also contains the following jar: axis2_saaj-1.1.jar&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;ls id="certificate" ip="any" port="443" servername="somesite.com" defaultvs="https2" security="on"&gt;&lt;/ls&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;sslparams servercertnickname="certificate" ssl2="off" ssl2ciphers=""&gt;&lt;cipher_params&gt;&lt;/cipher_params&gt;&lt;/sslparams&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;br /&gt;possible causes:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;The above two jars are conflicting with each other.  What is happening is that the axis2 saaj implementation of the message factory is being used instead of the sun saaj implementation of the message factory.&lt;br /&gt;&lt;br /&gt;Therefore, the axis2 saaj implementation is creating messages that the JAX-RPC client is not expecting.  It is expecting Message objects of a different type.&lt;br /&gt;&lt;br /&gt;Axis2 saaj Message class: org.apache.axis2.saaj.SOAPMessageImpl&lt;br /&gt;Sun saaj Message class: com.sun.xml.messaging.saaj.soap.MessagingImpl&lt;br /&gt;&lt;br /&gt;It is this discrepancy in the classes that is causing the above ClassCastException.  Within the StubBase it is expecting the type to be of the Sun implementation, but instead is getting the Axis 2 implementation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;solution&lt;br /&gt;&lt;br /&gt;solution 1)  Setting a system property and moving jars to the Axis 2 container lib&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Move the saaj-impl.jar and FastInfoSet.jar to the Axis2 container lib from the Axis2 service's lib.&lt;br /&gt;&lt;br /&gt;Then, within the code, set a system property that indicates which message factory should be used to construct SOAP messages for web services before the JAX-RPC client operation is called, as in the following code:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 0);font-family:courier new;" &gt;System.setProperty("javax.xml.soap.MessageFactory", "com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Imp");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;solution 2) Keep the JAXRPC jars in the service lib directory and modify the JAXRPC stub to use the correct MessageFactory.&lt;br /&gt;&lt;br /&gt;This is particularly a hacky way of embedding a JAXRPC client within a Axis2 service, but this seems to be the only way to do without including the JAXRPC client jars in the Axis2 container lib. &lt;br /&gt;&lt;br /&gt;In this solution, you need to modify the JAXRPC stub to&lt;br /&gt;&lt;br /&gt;a)  Create a custom MessageContext that extends from com.sun.xml.rpc.soap.message.SOAPMessageContext&lt;br /&gt;&lt;br /&gt;In this custom class, override the methods called &lt;span style="font-style: italic;"&gt;createMessage(useFastInfoset, acceptFastInfoset) &lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;and &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-style: italic;"&gt;createMessage(useFastInfoset, acceptFastInfoset) &lt;/span&gt;to use the&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt; com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl() &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;as the MessageFactory.&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;b) Create a custom &lt;span style="font-style: italic;"&gt;ClientTransport &lt;/span&gt;that extends from&lt;span style="font-style: italic;"&gt; HttpClientTransport.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In this custom class, override the readResponse() method.  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-454377284136821472?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/454377284136821472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=454377284136821472' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/454377284136821472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/454377284136821472'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/10/jaxrpc-error-javalangclasscastexception.html' title='JAXRPC Error -  java.lang.ClassCastException'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-752145097065817872</id><published>2007-10-12T08:18:00.000-07:00</published><updated>2007-10-12T08:25:26.880-07:00</updated><title type='text'>Detecting Broken Images with Javascript</title><content type='html'>An awesome link to determine whether the image is broken within the page.  The following is exact copy from the link in the References below.  Please refer to the link below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;      &amp;lt;!--&lt;br /&gt;          window.onload = function() {&lt;br /&gt;                  for (var i = 0; i &amp;lt; document.images.length; i++) {&lt;br /&gt;                      if (!IsImageOk(document.images[i])) {&lt;br /&gt;                             document.images[i].style.visibility = "hidden";&lt;br /&gt;                         }&lt;br /&gt;                     }&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;          function IsImageOk(img) {&lt;br /&gt;              // During the onload event, IE correctly identifies any images that&lt;br /&gt;              // weren't downloaded as not complete. Others should too. Gecko-based&lt;br /&gt;              // browsers act like NS4 in that they report this incorrectly.&lt;br /&gt;              if (!img.complete) {&lt;br /&gt;              return false;&lt;br /&gt;              }&lt;br /&gt;              // However, they do have two very useful properties: naturalWidth and&lt;br /&gt;              // naturalHeight. These give the true size of the image. If it failed&lt;br /&gt;              // to load, either of these should be zero.&lt;br /&gt;              if (typeof img.naturalWidth != "undefined" &amp;amp;&amp;amp; img.naturalWidth == 0) {&lt;br /&gt;              return false;&lt;br /&gt;              }&lt;br /&gt;              // No other way of checking: assume it's ok.&lt;br /&gt;              return true;&lt;br /&gt;          }&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;      //--&amp;gt;&lt;br /&gt;      &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;(If you feel that an exact copy of the code in this blog violates your rights, please tell me and I will take this code down.  The link below will still remain.  Thanks!)&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://talideon.com/weblog/2005/02/detecting-broken-images-js.cfm"&gt;http://talideon.com/weblog/2005/02/detecting-broken-images-js.cfm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-752145097065817872?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/752145097065817872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=752145097065817872' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/752145097065817872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/752145097065817872'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/10/detecting-broken-images-with.html' title='Detecting Broken Images with Javascript'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-8315330128914954284</id><published>2007-10-10T08:19:00.000-07:00</published><updated>2007-10-10T08:20:48.845-07:00</updated><title type='text'>Cool Recommended New Technologies</title><content type='html'>Testlink - &lt;a href="http://testlink.org/wordpress/"&gt;http://testlink.org/wordpress/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-8315330128914954284?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/8315330128914954284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=8315330128914954284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/8315330128914954284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/8315330128914954284'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/10/cool-recommended-new-technologies.html' title='Cool Recommended New Technologies'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7667792418624733883</id><published>2007-09-24T08:00:00.000-07:00</published><updated>2007-09-24T08:02:37.119-07:00</updated><title type='text'>Axis2 Client Error - NullPointerException at ClientUtils.inferIntTransport</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;java.lang.NullPointerException&lt;br /&gt;  at org.apache.axis2.description.ClientUtils.inferInTransport(ClientUtils.java:85)&lt;br /&gt;  at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:253)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;environment&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;Attempting to connect to a web service using an Axis2 client.&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;br /&gt;possible causes:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;You are missing a jar in your classpath.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;solution&lt;/span&gt;&lt;br /&gt;The missing jar is the commons-httpclient&lt;version&gt;.jar.  Add this jar to your classpath. &lt;/version&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7667792418624733883?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7667792418624733883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7667792418624733883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7667792418624733883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7667792418624733883'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/axis2-client-error-nullpointerexception.html' title='Axis2 Client Error - NullPointerException at ClientUtils.inferIntTransport'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-7990890975154552600</id><published>2007-09-21T15:17:00.000-07:00</published><updated>2007-10-16T13:14:29.095-07:00</updated><title type='text'>Classpath Problem - javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;com.bea.xml.stream.MXParserFactory not found&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;environment&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;The following xml jars are in my classpath:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;xerces.jar - org.apache.*, org.w3c.dom.html.*, org.w3c.dom.ls.*&lt;/span&gt; &lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;xercesImpl.jar - com.sun.org.apache.*&lt;/span&gt;  &lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;br /&gt;possible causes:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;You do not have a StAX implementation in your classpath.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;solution&lt;/span&gt;&lt;br /&gt;You must provide an implementation of StAX in your classpath.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;references&lt;/span&gt;&lt;br /&gt;&lt;a href="http://forums.java.net/jive/thread.jspa?messageID=117971"&gt;http://forums.java.net/jive/thread.jspa?messageID=117971&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-7990890975154552600?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/7990890975154552600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=7990890975154552600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7990890975154552600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/7990890975154552600'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/classpath-problem-javaxxmlstreamfactory.html' title='Classpath Problem - javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6076887734289771933</id><published>2007-09-20T12:59:00.000-07:00</published><updated>2007-09-20T13:07:13.124-07:00</updated><title type='text'>Secure Copy</title><content type='html'>&lt;span style="font-size:100%;"&gt;Copy local file to remote location:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;scp &lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;local-file-path&amp;gt;/&amp;lt;file-name&amp;gt; &lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;username&amp;gt;@&amp;lt;server-name&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;:&amp;lt;location-from-home-dir&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Copy remote file to local location:&lt;br /&gt;&lt;br /&gt;scp &lt;span style="color: rgb(51, 102, 255);"&gt;&amp;lt;username&amp;gt;@&amp;lt;server-name&amp;gt;:~/&amp;lt;path-to-file&amp;gt;/&amp;lt;file-name&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;&amp;lt;local-directory-location&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6076887734289771933?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6076887734289771933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6076887734289771933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6076887734289771933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6076887734289771933'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/secure-copy.html' title='Secure Copy'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-924076135027185371</id><published>2007-09-20T10:50:00.000-07:00</published><updated>2007-09-20T12:13:18.503-07:00</updated><title type='text'>Mule Logging - How to specify a different location for the mule logs</title><content type='html'>&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;bin/mule script&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Create and export an environment variable pointing to your desired log location.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export LOG_DIR=/data/logs/your-desired-log-location&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;conf/wrapper.conf file&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Refer to the environment variable exported in the mule script in the &lt;span style="font-family:courier new;"&gt;wrapper.logfile&lt;/span&gt; property in the wrapper.conf configuration file.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Wrapper Logging Properties&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#********************************************************************&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;......&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Log file to use for wrapper output logging.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;wrapper.logfile=%LOG_DIR%/%MULE_APP%.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;......&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-924076135027185371?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/924076135027185371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=924076135027185371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/924076135027185371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/924076135027185371'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/mule-logging.html' title='Mule Logging - How to specify a different location for the mule logs'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-2456026086481719145</id><published>2007-09-13T07:40:00.000-07:00</published><updated>2007-09-13T07:47:06.193-07:00</updated><title type='text'>Running an SSH Tunnel in the background</title><content type='html'>nohup ssh -v -L &amp;lt;local.port&amp;gt;:&amp;lt;destination.ip&amp;gt;:&amp;lt;destination.port&amp;gt; username@&amp;lt;remote.ip&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Note&lt;/span&gt;: You cannot use an alias for the ssh command or else it will not work.  You must use the ssh command directly in the nohup command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-2456026086481719145?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/2456026086481719145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=2456026086481719145' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2456026086481719145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2456026086481719145'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/running-ssh-tunnel-in-background.html' title='Running an SSH Tunnel in the background'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-5211206595356296724</id><published>2007-09-07T12:21:00.001-07:00</published><updated>2007-09-07T13:41:47.411-07:00</updated><title type='text'>Mule Error: Remote Debugging a Mule Server</title><content type='html'>The article given in &lt;a href="http://mule.codehaus.org/display/MULE/Remote+Debugging+a+Mule+Server"&gt;Remote Debugging a Mule Server&lt;/a&gt; does not work on some operating systems.  You must include each JVM option on a separate line as in the following example.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code-java"&gt;# uncomment &lt;span class="code-keyword"&gt;this&lt;/span&gt; line to debug remotely, the application will wait &lt;span class="code-keyword"&gt;for&lt;/span&gt; the external debugger to connect&lt;br /&gt;# IMPORTANT: change the wrapper.java.additional.&lt;n&gt; parameter to be the actual consecutive number,&lt;br /&gt;# depending on the number of additional parameters above&lt;br /&gt;&lt;span style="font-size:100%;"&gt;wrapper.java.additional.4=-Xdebug&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;wrapper.java.additional.5=-Xnoagent&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;wrapper.java.additional.6=-Djava.compiler=NONE&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;wrapper.java.additional.7=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/n&gt;&lt;/pre&gt;References:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://mule.codehaus.org/display/MULE/Remote+Debugging+a+Mule+Server"&gt;http://mule.codehaus.org/display/MULE/Remote+Debugging+a+Mule+Server&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mail-archive.com/user@mule.codehaus.org/msg04986.html"&gt;http://www.mail-archive.com/user@mule.codehaus.org/msg04986.html&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-5211206595356296724?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/5211206595356296724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=5211206595356296724' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5211206595356296724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/5211206595356296724'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/mule-error-remote-debugging-mule-server.html' title='Mule Error: Remote Debugging a Mule Server'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-3946616554681923590</id><published>2007-09-07T11:16:00.001-07:00</published><updated>2007-09-07T11:23:22.557-07:00</updated><title type='text'>Migrating from Mule 1.3.3 to Mule 1.4.1</title><content type='html'>1.  Change the MULE_HOME to point to the Mule 1.4.1 home directory.&lt;br /&gt;&lt;br /&gt;2.  Update the 'mule' script in the bin folder with the Mule 1.4.1 version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-3946616554681923590?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/3946616554681923590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=3946616554681923590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/3946616554681923590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/3946616554681923590'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/09/migrating-from-mule-133-to-mule-141.html' title='Migrating from Mule 1.3.3 to Mule 1.4.1'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-4795381368048387197</id><published>2007-08-30T12:27:00.001-07:00</published><updated>2007-08-30T12:47:32.328-07:00</updated><title type='text'>XML Error: NoClassDefFoundError: org/w3c/dom/ranges/DocumentRange</title><content type='html'>&lt;span style="font-family: trebuchet ms;font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family: trebuchet ms;"&gt;error&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;java.lang.NoClassDefFoundError: org/w3c/dom/ranges/DocumentRange&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;environment&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;The following xml jars are in my classpath:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;xerces.jar - org.apache.*, org.w3c.dom.html.*, org.w3c.dom.ls.*&lt;/span&gt; &lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;xercesImpl.jar - com.sun.org.apache.*&lt;/span&gt;  &lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;br /&gt;possible causes:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;You are missing the DocumentRange class in your classpath.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;solution&lt;/span&gt;&lt;br /&gt;You may either include dom.jar or xml-apis.jar in your classpath. &lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;" &gt; &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-4795381368048387197?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/4795381368048387197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=4795381368048387197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4795381368048387197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/4795381368048387197'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/08/xml-error-noclassdeffounderror.html' title='XML Error: NoClassDefFoundError: org/w3c/dom/ranges/DocumentRange'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6132873563407616869</id><published>2007-08-29T09:35:00.000-07:00</published><updated>2007-08-29T10:07:22.800-07:00</updated><title type='text'>Pivot Tables</title><content type='html'>&lt;pre class="bb-code-block"&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;SELECT  *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;FROM  (SELECT job,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     sum(decode(deptno,10,sal)) DEPT10,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     sum(decode(deptno,20,sal)) DEPT20,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     sum(decode(deptno,30,sal)) DEPT30,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     sum(decode(deptno,40,sal)) DEPT40&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     FROM scott.emp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     GROUP BY job)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;ORDER BY 1;&lt;/span&gt;&lt;/pre&gt;If you are pivoting over varchar fields, you can use the max or min aggregate function because these can operate on varchar fields.&lt;br /&gt;&lt;br /&gt;&lt;pre class="bb-code-block"&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;SELECT language_id,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     max(decode(greeting,'hello', sal)) english,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     max(decode(greeting,'konichiwa',sal)) japanese,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     max(decode(greeting,'ni hao',sal)) chinese,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;     max(decode(greeting,'ola',sal)) spanish&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;FROM language.phrases&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;GROUP BY language_id&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://orafaq.com/faq/how_does_one_code_a_matrix_crosstab_pivot_report_in_sql"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;How does one code a matrix/crosstab/pivot report in SQL?&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.singlequery.com/?p=5"&gt;Pivot Table Techniques&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6132873563407616869?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6132873563407616869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6132873563407616869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6132873563407616869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6132873563407616869'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/08/pivot-tables.html' title='Pivot Tables'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-2931633517978413036</id><published>2007-08-28T08:07:00.001-07:00</published><updated>2007-08-28T09:07:00.894-07:00</updated><title type='text'>Java XML Binding Frameworks</title><content type='html'>&lt;a href="http://ws.apache.org/commons/axiom/"&gt;Apache Axiom&lt;/a&gt; ~ AXis Object Model&lt;br /&gt;&lt;a href="http://www.castor.org/xml-mapping.html"&gt;Castor XML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/WebServices/jaxb/"&gt;JAXB&lt;/a&gt; ~ Java Architecture for XML Binding&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/jbind/"&gt;JBind&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jibx.sourceforge.net/"&gt;JiBX&lt;/a&gt;&lt;br /&gt;&lt;a href="http://xmlbeans.apache.org/"&gt;XMLBeans&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-2931633517978413036?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/2931633517978413036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=2931633517978413036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2931633517978413036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/2931633517978413036'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/08/java-xml-binding-frameworks.html' title='Java XML Binding Frameworks'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7164928681095736918.post-6175780963592445043</id><published>2007-08-28T07:35:00.000-07:00</published><updated>2007-08-28T07:45:44.376-07:00</updated><title type='text'>Dom4j Schema Validation</title><content type='html'>&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;XML:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;reportingConfig xmlns="http://services.bamnetworks.com/reporting/"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:schemaLocation="http://services.bamnetworks.com/reporting/ reporting-config.xsd"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;reportingconfig xmlns="http://services.bamnetworks.com/reporting/" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://services.bamnetworks.com/reporting/ reporting-config.xsd"&gt;...&lt;br /&gt;&lt;/reportingconfig&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/reportingConfig&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;reportingconfig xmlns="http://services.bamnetworks.com/reporting/" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://services.bamnetworks.com/reporting/ reporting-config.xsd"&gt;&lt;/reportingconfig&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;XSD:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;reportingconfig xmlns="http://services.bamnetworks.com/reporting/" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://services.bamnetworks.com/reporting/ reporting-config.xsd"&gt;&lt;br /&gt;&lt;/reportingconfig&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;?xml version="1.0" encoding="UTF-8"?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;reportingconfig xmlns="http://services.bamnetworks.com/reporting/" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://services.bamnetworks.com/reporting/ reporting-config.xsd"&gt;&lt;/reportingconfig&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;   targetNamespace="http://services.bamnetworks.com/reporting/"&lt;br /&gt;   xmlns:tns="http://services.bamnetworks.com/reporting/"&lt;br /&gt;   xmlns:xsd="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;   elementFormDefault="qualified"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetnamespace="http://services.bamnetworks.com/reporting/" tns="http://services.bamnetworks.com/reporting/" xsd="http://www.w3.org/2001/XMLSchema" elementformdefault="qualified"&gt;&lt;xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetnamespace="http://services.bamnetworks.com/reporting/" tns="http://services.bamnetworks.com/reporting/" xsd="http://www.w3.org/2001/XMLSchema" elementformdefault="qualified"&gt;...&lt;br /&gt;&lt;/xsd:schema&gt;&lt;/xsd:schema&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/xsd:schema&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetnamespace="http://services.bamnetworks.com/reporting/" tns="http://services.bamnetworks.com/reporting/" xsd="http://www.w3.org/2001/XMLSchema" elementformdefault="qualified"&gt;&lt;/xsd:schema&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Java code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;import org.dom4j.io.SAXReader;&lt;br /&gt;import org.dom4j.Document;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;SAXReader reader = new SAXReader(true);&lt;br /&gt;&lt;br /&gt;reader.setFeature("http://apache.org/xml/features/validation/schema", true);&lt;br /&gt;&lt;br /&gt;// set the validation feature to true to report validation errors&lt;br /&gt;reader.setFeature("http://xml.org/sax/features/validation", true);&lt;br /&gt;&lt;br /&gt;// set the validation/schema feature to true to report validation errors against a schema&lt;br /&gt;reader.setFeature("http://apache.org/xml/features/validation/schema", true);&lt;br /&gt;&lt;br /&gt;// set the validation/schema-full-checking feature to true to enable full schema, grammar-constraint checking&lt;br /&gt;reader.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);&lt;br /&gt;&lt;br /&gt;Document document = reader.read(reportingConfigURL);&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7164928681095736918-6175780963592445043?l=techjig.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techjig.blogspot.com/feeds/6175780963592445043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7164928681095736918&amp;postID=6175780963592445043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6175780963592445043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7164928681095736918/posts/default/6175780963592445043'/><link rel='alternate' type='text/html' href='http://techjig.blogspot.com/2007/08/dom4j-schema-validation.html' title='Dom4j Schema Validation'/><author><name>Mark</name><uri>http://www.blogger.com/profile/13557137754537110808</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
