tag:blogger.com,1999:blog-80804101354201995632024-03-16T11:52:09.422-07:00Sharing Experience on Java, J2EE, Linux, Unix and Database App DevelopmentsShibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-8080410135420199563.post-18682059578920276212014-05-29T01:07:00.001-07:002014-05-29T01:08:42.300-07:00use jquery ajax to call an action struts2My JS function to call Action through jquery:<br />
<br />
<br />
<pre class="prettyprint">function getData(plNum, plName, code){
var myJson = {};
<span class="Apple-tab-span" style="white-space: pre;"> </span>myJson.planNumber = plNum;
<span class="Apple-tab-span" style="white-space: pre;"> </span>myJson.planName = plName;
<span class="Apple-tab-span" style="white-space: pre;"> </span>myJson.code = code;
<span class="Apple-tab-span" style="white-space: pre;"> </span>var jsonString = JSON.stringify(myJson); /* using json string in the "data" below does not work */
<span class="Apple-tab-span" style="white-space: pre;"> </span>console.log(jsonString);
<span class="Apple-tab-span" style="white-space: pre;"> </span>$.ajax({
url: "getABCPlans",
data: {"planNumber" : plNum, "planName" : plName, "code" : code}, /*jsonString,*/ /*dataType: 'json',*/ /* Not needed, if not returning a json and not sending as a json, needs json interceptor */
type: 'GET',
/*contentType: 'application/json;charset=utf-8',*/ /* Not needed, if not returning a json and not sending as a json, needs json interceptor */
success: function (res) {
<span class="Apple-tab-span" style="white-space: pre;"> </span>showAnalystPlans(res);
},
error: function (request, status, error) {
console.log(status);
}
});
<span class="Apple-tab-span" style="white-space: pre;"> </span>return false;
}
</pre>
<br />
Where Action class ("MyPlanAction" class) has the corresponding method as:<br />
<pre class="prettyprint">public String getPlans() {
<span class="Apple-tab-span" style="white-space: pre;"> </span>String planNum = getPlanNumber(); /*getter and setter of "planNumber" */
<span class="Apple-tab-span" style="white-space: pre;"> </span>String planName = getPlanName(); /*getter and setter of "planName" */
<span class="Apple-tab-span" style="white-space: pre;"> </span>String code = getCode(); /* getter and setter of "code" */
<span class="Apple-tab-span" style="white-space: pre;"> </span>MyBO bo = new MyBO ();
<span class="Apple-tab-span" style="white-space: pre;"> </span>try {
<span class="Apple-tab-span" style="white-space: pre;"> </span>bo.seList(MyService.getPlans(planNum, planName, code));
<span class="Apple-tab-span" style="white-space: pre;"> </span>} catch (Exception exception) {
<span class="Apple-tab-span" style="white-space: pre;"> </span>logger.error(exception.getMessage());
<span class="Apple-tab-span" style="white-space: pre;"> </span>}
<span class="Apple-tab-span" style="white-space: pre;"> </span>return SUCCESS;
<span class="Apple-tab-span" style="white-space: pre;"> </span>}
</pre>
<br />
<br />
And my struts config has entries:<br />
<pre class="prettyprint"><action name="getABCPlans" class="com.my.action.MyPlanAction"
<span class="Apple-tab-span" style="white-space: pre;"> </span>method="getPlans">
<interceptor-ref name="defaultStack"></interceptor-ref>
<span class="Apple-tab-span" style="white-space: pre;"> </span><result name="success" type="dispatcher">
<span class="Apple-tab-span" style="white-space: pre;"> </span><param name="location">WEB-INF/pages/plansPage.jsp</param>
<span class="Apple-tab-span" style="white-space: pre;"> </span></result>
</action>
</pre>
Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-88789674296381902752014-05-06T03:46:00.001-07:002014-05-06T03:47:15.236-07:00load a jsp thorugh jquery or load jsp with struts tags through jquery<br />
Basically you can not create a jsp using jquery. Because jquery is valid on client side while JSP is valid on Server side.<br />
So how to load a JSP through jquery ??<br />
<br />
You can make an AJAX call to a server to get the html version (compiled jsp into an html as the response) of the jsp response and you use the response.<br />
<br />
You can use Jquery ajax (get or post), or load function to do that:<br />
<br />
For example using :
<br />
<pre class="prettyprint">$("#resultDiv").load("/myjspfromserver.jsp")
</pre>
OR<br />
<br />
<pre class="prettyprint">$.ajax(
{
url:url,
success:function ( data ) //where data is the response in format of html f//rom your jsp/action/servlet
{
$("#resultDiv").html( data );
}
} );</pre>
<br />
where assuming you have a div with its id as "resultDiv" where you want to insert the response html contents.<br />
<br />
And if you are thinking, what if I my request is being handled by a Servlet class on the server end not directly by a JSP!<br />
<br />
Then you have to do, just do whatever business logic you want to process in the Servlet, then before sending the response you just forward the request to the jsp which will process the request for the presentation/UI layer.<br />
<br />
<pre class="prettyprint">request.getRequestDispatcher("/WEB-INF/myxyz.jsp").forward(request, response);
</pre>
<br />
Or<br />
<pre class="prettyprint"> request.getRequestDispatcher("/jsp/myxyz.jsp").forward(request, response);</pre>
<br />
If you are using Struts/Struts2, process the business logic in your action but configure the Action mapping for the success (or any, which you want to be processed through the jsp) result, something like this:<br />
<br />
<pre class="prettyprint"><result name="success" type="dispatcher">
<span class="Apple-tab-span" style="white-space: pre;"> </span> <param name="location"><span class="str" style="border: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.333333969116211px; line-height: 17.80480194091797px; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">jsp/<span style="font-size: 13.333333969116211px; white-space: inherit;">myxyz</span></span><span class="str" style="border: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 13.333333969116211px; line-height: 17.80480194091797px; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">.jsp</span></param>
</result>
</pre>
<br />
<br />
Now in your jquery's ajax or load method you will get the html version of the jsp, so load that html response into a div or show in a dialog box or manipulate the content as you wish.<br />
<br />
<br />
Hope this helps!<br />
<br />
<br />
<br />
<br />
<br />
References:<br />
<a href="http://stackoverflow.com/questions/15111588/how-do-i-load-jsp-with-jquery-load-function-when-the-jsp-is-under-web-inf-fold" target="_blank">http://stackoverflow.com/questions/15111588/how-do-i-load-jsp-with-jquery-load-function-when-the-jsp-is-under-web-inf-fold</a><br />
<a href="http://stackoverflow.com/questions/3015335/jquery-html-vs-append" target="_blank">http://stackoverflow.com/questions/3015335/jquery-html-vs-append</a><br />
<br />
Tags:<br />
load jsp with struts tags through jquery<br />
create jsp with struts tags through jquery<br />
create part of a jsp with struts tags through jquery<br />
load a jsp thorugh jqueryShibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com1tag:blogger.com,1999:blog-8080410135420199563.post-6598013299830753232014-05-06T03:13:00.001-07:002014-05-06T03:13:07.356-07:00Struts2 action called twice or multiple of timesStruts2 action gets called twice or multiple of times specially when dealing with Json:<br />
<br />
I used to get issues while calling Struts2 action using jQuery Ajax and passing JSON to and from Action.<br />
<br />
Reason: Struts2 uses a lot interceptors in its default stack to pre and post process the request.<br />
And in particular JSONInterceptor will try to call all the getter methods available using java Refelection api inside the Action class (which makes it multiple calls) and tries to serialize the objects returned from the getter methods.<br />
<br />
Solution:<br />
You need to refactor/rename your getter methods with some other meaningful names like loadXXXXX / showXXXX.<br />
<br />
<br />
<br />
<br />
Reference:<br />
<a href="http://stackoverflow.com/questions/6061709/struts2-action-being-called-twice-if-result-type-is-json" target="_blank">http://stackoverflow.com/questions/6061709/struts2-action-being-called-twice-if-result-type-is-json</a><br /><br /><br />Tags:<br />struts2 action multiple methods execute<br />struts2 action automatically calling many times<br />struts2 action class automatically calling many times<br />why my struts2 action class invoke previous execute method<br />struts2 action calls previous method<br />struts2 filter mapping calls many methodsShibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-3940707701016865342013-12-10T03:51:00.001-08:002013-12-10T03:51:23.230-08:00Eclipse compiler error: The method ... of type ... must override a superclass methodI got some error as below in eclipse complaining about a compiler error:<br />
<span style="color: red;">The method ..... of type ..... must override a superclass method.</span><br />
Where as as you can clearly that I am overriding the method using the @Override annotation<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigzXeZAIkUA-lIvgIU6DYHujPuNWWG30TIvYenvbhIgCqPGBC4TbbNLrPUMMHtK73PBA2B0MtD2lTt2DuccLKqf4AiFGOm0iPRu7T-Ut3caVrdaexvfMWxTGFG78OYlg2Yc3TTKXJ_MA/s1600/error.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigzXeZAIkUA-lIvgIU6DYHujPuNWWG30TIvYenvbhIgCqPGBC4TbbNLrPUMMHtK73PBA2B0MtD2lTt2DuccLKqf4AiFGOm0iPRu7T-Ut3caVrdaexvfMWxTGFG78OYlg2Yc3TTKXJ_MA/s1600/error.jpg" /></a><br />
<br />
<br />
<b>Reason:</b><br />
Check if your eclipse/myeclipse is using a compiler version lesser than java 1.6.<br />
<b><br /></b>
<b>Solution:</b><br />
Change the compiler to jdk 1.6 or above in your IDE as shown in below picture:<br />
That should do.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1fuZ1TzaTB9gUOLXA5aJ1RzzpXf3ty-POtBdYugo9mqprHMqxHqi3z-XWWgBA9waCSpCFWkob6cM7j56LAfHpG1pfIPo0XIfXznRZdTvGAE5-dhtx3SNEk43QOOazXCeNido-WJpX7Q/s1600/2013-12-05+14_02_47-Preferences.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1fuZ1TzaTB9gUOLXA5aJ1RzzpXf3ty-POtBdYugo9mqprHMqxHqi3z-XWWgBA9waCSpCFWkob6cM7j56LAfHpG1pfIPo0XIfXznRZdTvGAE5-dhtx3SNEk43QOOazXCeNido-WJpX7Q/s1600/2013-12-05+14_02_47-Preferences.png" /></a><br />
<br />
<br />
References:
http://stackoverflow.com/questions/1678122/must-override-a-superclass-method-errors-after-importing-a-project-into-eclipsShibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-42635447499427560032013-08-28T05:20:00.001-07:002013-08-28T05:20:42.683-07:00format java date from string MM/dd/yyyy HH:mm:ss a<pre class="prettyprint">String datetimeString = "6/7/2013 2:55:44 PM"; // A String representing your date
java.util.Date result = new Date();
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
// Below Will Throw Exception in thread "main" java.text.ParseException: Unparseable date:
// SimpleDateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");
result = formatter.parse(datetimeString); // Throws ParseException
System.out.println("Parse Java Util Date = "+result);
System.out.println("formatted: " + formatter.format(result));
</pre>
<br />
<br />
Output is:<br />
<pre class="prettyprint">Parse Java Util Date = Fri Jun 07 14:55:44 GMT+05:30 2013
formatted: 06/07/2013 02:55:44 PM
</pre>
<br />
<br />
Refer below posts for more examples:<br />
<a href="http://viralpatel.net/blogs/check-string-is-valid-date-java/" target="_blank">http://viralpatel.net/blogs/check-string-is-valid-date-java/</a><br />
<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html" target="_blank">http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-2206381795604857712013-08-20T05:20:00.003-07:002013-12-10T03:55:06.910-08:00How to pass multiple property (option) values as an argument to a method in JQueryFor an jQuery API we have multiples of options to use from for a method.<br />
For example, for the jQuery UI Dialog widget we have <a href="http://api.jqueryui.com/dialog/" target="_blank">a lot of options</a> to choose from like we have maxHeight, minWidth, modal, resizable, draggable to achieve different functionalyties with the widget.<br />
<br />
So how to use all or some of these options with the dialog method ?<br />
<br />
Here is how we can do it:<br />
We can create a variable containing all the options (name:value) with comma(,) in between multiple values (basically json notation) and then pass the variable to the dialog() method.<br />
<br />
<pre class="prettyprint"> $(function(){
<span class="Apple-tab-span" style="white-space: pre;"> </span>var dialogOpts = {
<span class="Apple-tab-span" style="white-space: pre;"> </span>show: true,
<span class="Apple-tab-span" style="white-space: pre;"> </span>hide: true,
<span class="Apple-tab-span" style="white-space: pre;"> </span>maxHeight: 400,
<span class="Apple-tab-span" style="white-space: pre;"> </span>minWidth: 850
<span class="Apple-tab-span" style="white-space: pre;"> </span>};
<span class="Apple-tab-span" style="white-space: pre;"> </span>$("#dialog").dialog(dialogOpts);
});
</pre>
<br />
where "dialog" is the div name inside your html's body as follows :<br />
<pre class="prettyprint"><div id="dialog" title="Basic dialog">
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
</pre>
<br />
<br />
<br />
<br />
Tags:<br />
jquery option chain<br />
jquery ui option chaining<br />
jquery method option chaining<br />
How to use multiple options to pass to a method in JQuery<br />
How to use multiple options using options for jQuery method<br />
How to use multiple options to pass to a method in JQueryShibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-64612553239391742932013-08-20T05:02:00.001-07:002013-08-20T05:02:23.026-07:00What is the dollar Sign ($) means in JQuery Or how to avoid $ collision from jquery with other languages or technologies $ (dollar) sign in Jquery is just a method name or identifier name.<br />
<br />
As javascript allows the $ sign as a special character including some other special characters to be used as a valid variable name (identifier) or a valid method name.<br />
<br />
To make it simple, jQuery and some other languages (scripting or coding) has choosen this $ to use their api (methods) easily.<br />
<br />
In jQuery, we can replace the $ sign with the word "jQuery" whenever we encounter $ collision issues with some other coding languages like JSTL (JSP, EL) or prototype etc. and it will do the trick.<br />
Infact we can say, $ is a shortcut symbol for the "jQuery" word.<br />
<br />
So in jQuery below code :<br />
<pre class="prettyprint">
<script>
$(function() {
$( "#dialog" ).dialog();
});
</script>
</pre>
<br />
is Same as below code:<br />
<pre class="prettyprint">
<script>
jQuery(function() {
jQuery( "#dialog" ).dialog();
});
</script>
</pre>
<br />
<br />
<br />
Tags:<br />
What is the dollar Sign ($) means in JQuery ?<br />
How to avoid $ collision from jquery with other languages or technologies ?<br />
<br />Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-63134555397193584592013-07-12T06:24:00.001-07:002013-07-12T06:24:54.189-07:00How to know whether a WebService WSDL file is of SOAP version 1.1 or 1.2 compliant If your WSDL file has a namespace named "soap12" inside the <wsdl:definitions tag, as shown below:<br />
<br />
<b><wsdl:definitions</b> xmlns:s="http://www.w3.org/2001/XMLSchema" <b><span style="color: #ea9999;">xmlns:soap12</span>="<span style="color: #9fc5e8;">http://schemas.xmlsoap.org/wsdl/soap12/</span>"</b><br />
<br />
<br />
<br />
Then the wsdl is SOAP 1.2 version compliant /compatible.<br />
<br />
<br />
References:<br />
<a href="http://schemas.xmlsoap.org/wsdl/soap12/soap12WSDL.htm">http://schemas.xmlsoap.org/wsdl/soap12/soap12WSDL.htm</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-59415323603120543172013-07-12T06:06:00.000-07:002013-07-12T06:06:01.175-07:00validate a webservice wsdl file onlineBelow are some sites to validate the WSDL file hosted some where in the internet.<br />
<br />
1. <a href="http://www.validwsdl.com/" target="_blank">http://www.validwsdl.com/</a><br />
2. <a href="http://xmethods.net/ve2/Tools.po">http://xmethods.net/ve2/Tools.po</a><br />
<br />
<br />
<br />Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-34364784357588923242013-07-04T03:36:00.002-07:002013-07-04T03:36:17.341-07:00Content is not allowed in prolog. org.xml.sax.SAXParseException: Content is not allowed in prolog.<pre class="prettyprint lang-java">SEVERE: Parse Fatal Error at line 2 column 1: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Jul 4, 2013 3:43:44 PM org.apache.catalina.startup.Catalina load
WARNING: Catalina.start using conf/server.xml:
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)</pre>
<br />
<br />
We get this error, due to some characters in the xml file (in my case it was server.xml file) are not liked by the Parser. Even when you open the same file in IE browser, it will not open up. Also IDE like MyEclipse also shows same error "Content is not allowed in prolog."<br />
<br />
I could not find out, which character or line are not liked by the parser.<br />
<span style="color: lime;"><b>So the solution for me :</b></span> I took another same xml file (which was working) and replaced it and made changes as per my requirement.<br />
<br />
That's it !!Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-22252760508304277262013-07-03T07:57:00.000-07:002013-07-03T08:25:35.383-07:00java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) and javax.servlet.ServletException: java.lang.LinkageError<pre class="prettyprint">SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
<span class="Apple-tab-span" style="white-space: pre;"> </span>at java.lang.Thread.run(Thread.java:619)
Jul 3, 2013 5:27:29 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
</pre>
<br />
I googled it, found some suggestions like,<br />
<div class="MsoNormal">
<span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt;">we have jsp-api.jar and servlet-api.jar placed inside the project’s WEB-INF/lib
directory and That’s causing the issue. Because it should not be there as Tomcat
has it already these jars in its lib.</span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt;">But removing that jar from the
projects gives me this below error:</span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbyc2xUH4144sc1Ud-5roh4F5SuVzBSR0ufjBJi2Sjfr6rskGzgkE21Wj3fZ_sIxLUmis6x2YIJO2bRAXk4TrpVZyJmNeRncFQ7b5NTcTze0ibpgxnfif9QSfIFH22g_AQ-KhrS6TmA/s994/2013-07-03+18_07_47.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbyc2xUH4144sc1Ud-5roh4F5SuVzBSR0ufjBJi2Sjfr6rskGzgkE21Wj3fZ_sIxLUmis6x2YIJO2bRAXk4TrpVZyJmNeRncFQ7b5NTcTze0ibpgxnfif9QSfIFH22g_AQ-KhrS6TmA/s400/2013-07-03+18_07_47.png" width="400" /></a></div>
<div class="MsoNormal">
<span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt;"><br /></span></span></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
And Sometimes, when you delete some conflicting jars (but still some conflicts remains there), then you may get below exception :<br />
<br />
<pre class="prettyprint">javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;
" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext,
have different Class objects for the type javax/el/ExpressionFactory used in the signature
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:343)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
</pre>
<br />
Now the root cause of this issue is jar files conflict.<br />
Basically identical jar's located inside server's (like Tomcat's) lib directory conflict with same jars found in your deployed application's WEB-INF/lib/ directory.<br />
Below jars in my case above were causing the issue.<br />
1. servlet-api.jar<br />
2. jsp-api.jar<br />
3. el-api.jar<br />
<br />
I had these in the BuildPath of my MyEclipse, because of class files had dependency on these.. so could not delete from there. But when I deploy the application, these jars get copied into the TOMCAT_HOME/webapps/myproject/WEB-INF/lib/<br />
<br />
And by default my TOMCAT_HOME/lib/ directory had these jars.<br />
<br />
Now, I can not delete the servlet-api and jsp-api jars from my MyEclipse build path, otherwise my code will have so many compile errors due to classNotFound.<br />
<br />
<b><span style="color: lime;">So the solution I used is:</span></b><br />
1. I deleted servlet-api and jsp-api jars from my MyEclipse build path, and in place of these, I used javaee.jar (which had all the required class files for my project to compile).<br />
2. Also completely deleted the el-api.jar file too from the build path<br />
<br />
Hope that helps for you too!!<br />
<br />
References:<br />
<a href="http://stackoverflow.com/questions/8487048/java-lang-linkageerror-javax-servlet-jsp-jspapplicationcontext-getexpressionfac" target="_blank">http://stackoverflow.com/questions/8487048/java-lang-linkageerror-javax-servlet-jsp-jspapplicationcontext-getexpressionfac</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-54370127464075188712013-07-03T01:07:00.003-07:002013-07-03T01:07:39.395-07:00spring / JSTL $ variable does not display the value Or Spring $ variable not carrying into view / JSPThe expression language (EL, $ syntax) like ${message} doesn't work in my JSP / JSTL tags while working with Spring!<br />
I noticed this issue while working with Spring demo.<br />
<br />
Lets discuss first what was my settings and what I tried to make it work, then will take about the solution.<br />
I was setting the variable in the spring Controller like below:
<br />
<br />
<pre class="prettyprint"> @RequestMapping("/hello")
public ModelAndView helloWorld() {
String message = "HELLO SPRING MVC";
return new ModelAndView("abcd", "msg", message);
}
/* Even I tried below way of setting the variable msg */
@RequestMapping("/welcome")
public String welcomeWorld(Model m) {
String s = "HELLO SPRING MVC";
m.addAttribute("msg", s);
return "welcome";
}
</pre>
<br />
And I was trying to use the "msg" variable in the JSP (abcd.jsp) as below:<br />
<br />
<pre class="prettyprint"><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<html>
<body>
Message is: <%= request.getAttribute("msg") %> <br/>
Message is: <c:out value="${msg}" /> <br/>
Message is: ${"msg"} <br/>
Message is: ${msg} <br/>
</body>
</html>
</pre>
<br />
Tried every possible combination of displaying the variable in the jsp.
<br />
But I was not getting any value corresponding to the variable when used along with the EL $, I used to get below response through JSP page when run under tomcat 5.5.x:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif0MS1QypX65xZHRlhrTvsUqzZ6LSz2g8cQfaCwdHX2MFtmeFqCcTP8rYcSp1V7jvEmfZ9p-kvjgQCcnel1Ya8wkeuQNDOkzPCijs7-lQuxs6q_oWNeeXwc1UEFWf0Fj4Ciqy19lIFgQ/s420/2013-07-03+13_17_42.png.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif0MS1QypX65xZHRlhrTvsUqzZ6LSz2g8cQfaCwdHX2MFtmeFqCcTP8rYcSp1V7jvEmfZ9p-kvjgQCcnel1Ya8wkeuQNDOkzPCijs7-lQuxs6q_oWNeeXwc1UEFWf0Fj4Ciqy19lIFgQ/s400/2013-07-03+13_17_42.png.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
So, after googling out, I found that, its the Servlet and JSP versions not compatible with the server.<br />
Basically in my web.xml I had declared the version of Servlet I am using is 2.5 as below:<br />
<br />
<pre class="prettyprint"><?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<span class="Apple-tab-span" style="white-space: pre;"> </span><servlet-name>spring</servlet-name>
<span class="Apple-tab-span" style="white-space: pre;"> </span><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<span class="Apple-tab-span" style="white-space: pre;"> </span><load-on-startup>1</load-on-startup>
<span class="Apple-tab-span" style="white-space: pre;"> </span></servlet>
<span class="Apple-tab-span" style="white-space: pre;"> </span><servlet-mapping>
<span class="Apple-tab-span" style="white-space: pre;"> </span><servlet-name>spring</servlet-name>
<span class="Apple-tab-span" style="white-space: pre;"> </span><url-pattern>*.html</url-pattern>
<span class="Apple-tab-span" style="white-space: pre;"> </span></servlet-mapping>
</web-app>
</pre>
<br />
But, I was deploying above application on a Tomcat server of version 5.5.x (which supports Servlets version 2.4). And that was the main root cause.<br />
<br />
So, When I deployed the application to Tomcat 6.x (supporting Servlets 2.5 and a higher version of JSP and EL), It worked fine.<br />
<br />
Now I am getting the expected result of the above JSP (abcd.jsp) page, the output is shown below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxcJxYvfO240n6np2-F1ECrawRvp0aHx2uUTeYT_v0r_lBQtfrrUpaNxDihXLtzWTdVQJxVTdIPx6XcoZWYp6gqDLVo0fMB7LZKIiRlZa0Mtjfw4SHz96WWhPQEAjHSU0u8_fnbHfaGA/s381/2013-07-03+13_33_39.png.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxcJxYvfO240n6np2-F1ECrawRvp0aHx2uUTeYT_v0r_lBQtfrrUpaNxDihXLtzWTdVQJxVTdIPx6XcoZWYp6gqDLVo0fMB7LZKIiRlZa0Mtjfw4SHz96WWhPQEAjHSU0u8_fnbHfaGA/s400/2013-07-03+13_33_39.png.jpg" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Hope this helps you too!!</b><br />
<br />
References I followed:<br />
<a href="http://stackoverflow.com/tags/jstl/info" target="_blank">http://stackoverflow.com/tags/jstl/info</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-31414527146497775472013-06-28T06:51:00.002-07:002013-12-27T05:18:19.322-08:00is invalid; nested exception is org.xml.sax.SAXParseException: Element type "bean" must be followed by either attribute specifications, ">" or "/>".If you are getting extra special characters (like ascii or hexa or any weird characters) in your script/xml/txt file OR<br />
If you are getting an error like below in your logs:<br />
<br />
<br />
<pre class="prettyprint linenums"><span style="color: #ea9999;">2013-06-28 08:57:02,295 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed></span>
<span style="color: #ea9999;">org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 67 in XML document from ServletContext resource [/WEB-INF/spring-configuration/ticketRegistry.xml] is invalid; <b>nested exception is org.xml.sax.SAXParseException: Element type "bean" must be followed by either attribute specifications, ">" or "/>".</b></span>
<span style="color: #ea9999;"> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)</span>
<span style="color: #ea9999;"> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)</span>
<span style="color: #ea9999;"> at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)</span>
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)</span>
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)</span>
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)</span>
<span style="color: #ea9999;"> at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)</span>
<span style="color: #ea9999;"> at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)</span>
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)</span>
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)</span>
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)</span>
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)</span>
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)</span>
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)</span>
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody0(SafeContextLoaderListener.java:75)</span>
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody1$advice(SafeContextLoaderListener.java:57)</span>
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(SafeContextLoaderListener.java:1)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)</span>
<span style="color: #ea9999;"> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardService.start(StandardService.java:525)</span>
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.Catalina.start(Catalina.java:595)</span>
<span style="color: #ea9999;"> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</span>
<span style="color: #ea9999;"> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</span>
<span style="color: #ea9999;"> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</span>
<span style="color: #ea9999;"> at java.lang.reflect.Method.invoke(Method.java:597)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)</span>
<span style="color: #ea9999;"> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)</span>
<span style="color: #ea9999;">Caused by: org.xml.sax.SAXParseException: Element type "bean" must be followed by either attribute specifications, ">" or "/>".</span>
</pre>
The reason could be that your xml file contains some invisible characters to your eye (basically some ansi characters), Normally this happens when you copy the code from internet browser or pdf and paste into your editor/IDE.<br />
<br />
Though you keep formatting the xml, but still the error remains same as shown below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3sE82ajNIwMvlhPLdbw1aiX2DZcedB0xVJwVNcK1viYoyDAUN6em52l_fYD0nOfxPPYbW1cRCCgRe1EV3KQF6OBcaWleqma2wwqJ1BiuPzYPCALoFyozNXi_2kqQVLJhUy1vckVL5lA/s764/Fullscreen+capture+6282013+70638+PM.bmp.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3sE82ajNIwMvlhPLdbw1aiX2DZcedB0xVJwVNcK1viYoyDAUN6em52l_fYD0nOfxPPYbW1cRCCgRe1EV3KQF6OBcaWleqma2wwqJ1BiuPzYPCALoFyozNXi_2kqQVLJhUy1vckVL5lA/s1600/Fullscreen+capture+6282013+70638+PM.bmp.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b>Solutions #1:</b><br />
1. Copy the code showing error into just plain notepad.<br />
2. try deleting all the spaces between words and then manually use spacebar to add spaces between words/attributes.<br />
3. Again copy the code from notepad and then paste into your IDE/Editor.<br />
<br />
This should have solved.<br />
<br />
But, in some cases, this also does not solve the issue.<br />
<br />
<b>Solutions #2:</b><br />
1. Open the same excel file in an advanced editor like notepad++,<br />
2. Go to the "Encode" menu --> choose "Encode in ANSI"<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqGEZw5f7BAo015bgc9d-3Q6RpPK1tyQKu9_eJIuOLkq2b8WqYLhdsWTZopKxbzrSOax6yFn6Af5wO8Fcd8UjNk9Q_lZQZXfh_7dOullXLXc9dCTgWkqab36958A-7BzaZQJ5hEVMFuw/s511/Fullscreen+capture+6282013+71109+PME.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqGEZw5f7BAo015bgc9d-3Q6RpPK1tyQKu9_eJIuOLkq2b8WqYLhdsWTZopKxbzrSOax6yFn6Af5wO8Fcd8UjNk9Q_lZQZXfh_7dOullXLXc9dCTgWkqab36958A-7BzaZQJ5hEVMFuw/s1600/Fullscreen+capture+6282013+71109+PME.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
3. Now you should be able to see all those invisible ansi characters you have derived while copy pasting from internet (shown below):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPS5TnSV1MrWSul1dnKM86YkocOHJ_t6FeAF5sv29K4fpxHERZjDRe9IWM2Qnr3EpmH4rEK1mPHrrI1ba2Y8ILjMRS65pry6UhvgAu-SkzS8HS58hm-PxLm0L0xeVlLRb9WG5RsU7c1A/s865/Fullscreen+capture+6282013+71552+PM.bmp.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPS5TnSV1MrWSul1dnKM86YkocOHJ_t6FeAF5sv29K4fpxHERZjDRe9IWM2Qnr3EpmH4rEK1mPHrrI1ba2Y8ILjMRS65pry6UhvgAu-SkzS8HS58hm-PxLm0L0xeVlLRb9WG5RsU7c1A/s1600/Fullscreen+capture+6282013+71552+PM.bmp.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
4. So you got now proof that you have some to give company there in your xml file.<br />
Delete all those, characters manually or by using the editors find/replace (ctrl + h ) option:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheM24xgM7tx7V0Xw9gAZohK1TWJuQ8vOWwv6xdsKFvtFPDG6vN1e1QVzrNNIXskeRzZebKaP3odBYKdho1U1PK6xrMhOMmO7fJYRF50SxuDPTEWdBAiCdvJKO29QitE5dAag5c9_bxdQ/s900/Fullscreen+capture+6282013+72547+PM.bmp.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheM24xgM7tx7V0Xw9gAZohK1TWJuQ8vOWwv6xdsKFvtFPDG6vN1e1QVzrNNIXskeRzZebKaP3odBYKdho1U1PK6xrMhOMmO7fJYRF50SxuDPTEWdBAiCdvJKO29QitE5dAag5c9_bxdQ/s1600/Fullscreen+capture+6282013+72547+PM.bmp.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
5. Now try changing the encoding to the other formats, you will be surprised to see more invisible characters suddenly becomes visible to you :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLghQLqq1yaolMx0pMImtKsBlU72El9gla1_JGUlvxPMzzW4bZRMDZQP-zyNkbUjgVLWwJ78GaYeY62fyLFtYEMirpaIR99NQWcobRttsBqspQP9ayv3D7RnwTcnwkL3XKYJiFtVUQtw/s876/Fullscreen+capture+6282013+72943+PM.bmp.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLghQLqq1yaolMx0pMImtKsBlU72El9gla1_JGUlvxPMzzW4bZRMDZQP-zyNkbUjgVLWwJ78GaYeY62fyLFtYEMirpaIR99NQWcobRttsBqspQP9ayv3D7RnwTcnwkL3XKYJiFtVUQtw/s1600/Fullscreen+capture+6282013+72943+PM.bmp.jpg" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
6. Play around with encodings, delete those chars and Save.<br />
Rerun the application. You should be fine.<br />
<br />
<b><span style="color: #f9cb9c;">If you are in Unix Environment, and you doubt your script file (.sh) contains any special characters, you can view those special characters using VI editor.</span></b><br />
<br />
Open the file using VI editor:<br />
$ vi <file_name><br />
Hit Esc<br />
Then type in the command line of the vi editor as (To be able to see the extra characters)- <span style="background-color: #ffe599;"> <b><i><span style="color: purple;">:set list</span> </i></b></span><br />
To again hide the special characters or make the file to be seen as normal, type in the command line- <span style="background-color: #ffe599;"> <b><i><span style="color: purple;">:set nolist</span> </i></b></span>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-70120123515827741672013-06-28T05:03:00.002-07:002013-06-30T02:40:32.967-07:00Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.(Lorg/hibernate/mapping/Table;)V<pre class="prettyprint">
2013-06-28 07:17:07,829 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed><br />
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ticketRegistry' defined in ServletContext resource [/WEB-INF/spring-configuration/ticketRegistry.xml]: Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/deployerConfigContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V<br />
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)<br />
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)<br />
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616)<br />
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)<br />
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)<br />
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)<br />
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)<br />
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)<br />
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)<br />
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)<br />
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)<br />
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)<br />
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)<br />
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)<br />
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)<br />
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)<br />
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)<br />
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)<br />
at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody0(SafeContextLoaderListener.java:75)<br />
at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody1$advice(SafeContextLoaderListener.java:57)<br />
at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(SafeContextLoaderListener.java:1)<br />
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)<br />
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)<br />
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)<br />
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)<br />
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)<br />
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)<br />
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)<br />
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)<br />
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)<br />
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)<br />
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)<br />
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)<br />
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)<br />
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)<br />
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)<br />
at org.apache.catalina.core.StandardService.start(StandardService.java:525)<br />
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)<br />
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
at java.lang.reflect.Method.invoke(Method.java:597)<br />
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)<br />
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)<br />
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/deployerConfigContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V<br />
<br /></pre>
<br />
<b>Solution:</b><br />
<br />
If you are using hibernate-core jar version 3.6 and above, then Take out the dependency (related to hibernate-annotations jar) from your maven or remove the hibernate-annotations jar from your applications lib) :<br />
<artifactId>hibernate-annotations</artifactId><br />
<div>
<br /></div>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-85158991448665381562013-06-28T04:36:00.000-07:002014-07-23T05:45:50.258-07:00Chcek maven dependyncy or jar conflicts - mvn dependency:tree or mvn dependency:tree -Dverbose : is used to see/verify the dependency between jars in Maven for your project dirMaven command<br />
<b>mvn dependency:tree</b> is used to see/verify the dependency between jars used in a particular project.<br />
<br />
To run above command, navigate to your project directory and where you have the pom.xml file for the project you want to verify the jar dependencies:<br />
For example, like<br />
<pre class="prettyprint"># cd /opt/cas-workspace/local-cas
</pre>
<br />
Thats the location of my workspace, containing my projects pom file.<br />
<br />
<pre class="prettyprint">[root@www local-cas]# ls -l
total 20
-rw-r--r-- 1 root root 8795 Jun 25 11:33 pom.xml
drwxr-xr-x 3 root root 4096 Jun 5 07:33 src
drwxr-xr-x 5 root root 4096 Jun 25 11:57 target
</pre>
<br />
So, now you can run the mvn dependency:tree command.<br />
<pre class="prettyprint"># mvn dependency:tree
</pre>
<br />
or specifically if you know which jar you are getting loaded as extra then you can filter it to look for that particular jar by providing its groupId and artifactId and its version (all are option values):<br />
<br />
<pre class="prettyprint">><b> mvn dependency:tree -Dincludes=org.slf4j:slf4j-api:1.4.2</b></pre>
<br />
where the above format is : <span style="color: magenta;"> mvn dependency:tree -Dincludes=[groupId]:[artifactId]:[version]</span><br />
<br />
To look for a particular jar files groupId and its artifact you can search on below sites:<br />
<a href="https://www.versioneye.com/java/org.slf4j:slf4j-api/1.4.2" target="_blank">https://www.versioneye.com/java/org.slf4j:slf4j-api/1.4.2</a><br />
<a href="https://search.maven.org/#search%7Cga%7C1%7Cjcl104-over-slf4j" target="_blank">https://search.maven.org/#search%7Cga%7C1%7Cjcl104-over-slf4j</a><br />
<br />
Also you can use:<br />
<pre class="prettyprint"># mvn dependency:tree -Dverbose</pre>
<br />
In verbose mode the dependency tree shows dependencies that were omitted for: being a duplicate of another; conflicting with another's version and/or scope<br />
<br />
References:<br />
<a href="http://maven.apache.org/plugins/maven-dependency-plugin/usage.html" target="_blank">http://maven.apache.org/plugins/maven-dependency-plugin/usage.html</a><br />
<a href="http://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html" target="_blank">http://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html</a><br />
<a href="http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html" target="_blank">http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-76107846173938137502013-06-28T03:48:00.002-07:002013-06-30T08:59:24.464-07:00Cannot create a session after the response has been committed : CAS application errorBelow is an issue related to CAS,<br />
<br />
Env is: CAS 3.5.2 deployed on Tomcat 6.<br />
<br />
"When I login I get an error. If I refresh/resubmit the information it goes through and operates normally. Any advice would be greatly appreciated."<br />
<br />
The error is below:<br />
<pre class="prettyprint">type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Cannot create a session after the response has been committed
<br />
<span class="Apple-tab-span" style="color: #ea9999; white-space: pre;"> </span>org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
<span class="Apple-tab-span" style="white-space: pre;"> </span>javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
<span class="Apple-tab-span" style="white-space: pre;"> </span>javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody2(SafeDispatcherServlet.java:128)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody3$advice(SafeDispatcherServlet.java:57)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:1)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
<span class="Apple-tab-span" style="white-space: pre;"> </span>com.github.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:63)
root cause
java.lang.IllegalStateException: Cannot create a session after the response has been committed
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.apache.catalina.connector.Request.doGetSession(Request.java:2400)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.apache.catalina.connector.Request.getSession(Request.java:2120)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.webflow.context.servlet.HttpSessionMap.getMutex(HttpSessionMap.java:98)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.webflow.core.collection.LocalSharedAttributeMap.getMutex(LocalSharedAttributeMap.java:39)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.webflow.conversation.impl.ContainedConversation.unlock(ContainedConversation.java:108)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.webflow.execution.repository.support.ConversationBackedFlowExecutionLock.unlock(ConversationBackedFlowExecutionLock.java:55)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:178)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
<span class="Apple-tab-span" style="white-space: pre;"> </span>javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
<span class="Apple-tab-span" style="white-space: pre;"> </span>javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody2(SafeDispatcherServlet.java:128)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody3$advice(SafeDispatcherServlet.java:57)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:1)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
<span class="Apple-tab-span" style="white-space: pre;"> </span>org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
<span class="Apple-tab-span" style="white-space: pre;"> </span>com.github.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:63)
</pre>
<br />
<b>Solution:</b><br />
"I assume that happens when there is no 'service' param and CAS tries to render a successful generic login page. Correct? If so, that is a side effect that is caused by 'terminateWebSessionListener' bean defined in cas-servlet.xml. You could a) disable one b) set the 'timeToDieInSeconds' property to a higher value to remedy this annoyance, like so":<br />
<br />
<pre class="prettyprint"><span style="font-family: inherit;"><bean id="terminateWebSessionListener" class="org.jasig.cas.web.flow.TerminateWebSessionListener" </span>
<span style="font-family: inherit;"> p:serviceManagerUrl="${cas.securityContext.serviceProperties.service}"</span>
<span style="font-family: inherit;"> <b>p:timeToDieInSeconds="5"</b>/></span><br />
</pre>
Via Reference:<br />
<a href="https://lists.wisc.edu/read/messages?id=27757318#27757318" target="_blank">https://lists.wisc.edu/read/messages?id=27757318#27757318</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-48514733694985432272013-06-26T08:01:00.000-07:002013-06-28T07:57:40.222-07:00Error creating bean with name 'ticketRegistry' defined in ServletContext resource [/WEB-INF/spring-configuration/ticketRegistry.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)If you are working on CAS for SSO functionality and while trying to use CAS server, you got below exceptions in your log:<br />
<br />
<span style="color: #ea9999;">2013-06-26 06:12:57,764 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed></span><br />
<span style="color: #ea9999;">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ticketRegistry' defined in ServletContext resource [/WEB-INF/spring-configuration/ticketRegistry.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:250)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)</span><br />
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)</span><br />
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)</span><br />
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)</span><br />
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)</span><br />
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)</span><br />
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody0(SafeContextLoaderListener.java:75)</span><br />
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody1$advice(SafeContextLoaderListener.java:57)</span><br />
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(SafeContextLoaderListener.java:1)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardService.start(StandardService.java:525)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.Catalina.start(Catalina.java:595)</span><br />
<span style="color: #ea9999;"> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</span><br />
<span style="color: #ea9999;"> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</span><br />
<span style="color: #ea9999;"> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</span><br />
<span style="color: #ea9999;"> at java.lang.reflect.Method.invoke(Method.java:597)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)</span><br />
<span style="color: #ea9999;">2013-06-26 06:12:57,768 ERROR [org.jasig.cas.web.init.SafeContextLoaderListener] - <SafeContextLoaderListener:</span><br />
<span style="color: #ea9999;">The Spring ContextLoaderListener we wrap threw on contextInitialized.</span><br />
<span style="color: #ea9999;">But for our having caught this error, the web application context would not have initialized.></span><br />
<span style="color: #ea9999;">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ticketRegistry' defined in ServletContext resource [/WEB-INF/spring-configuration/ticketRegistry.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:250)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)</span><br />
<span style="color: #ea9999;"> at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)</span><br />
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)</span><br />
<span style="color: #ea9999;"> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)</span><br />
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)</span><br />
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)</span><br />
<span style="color: #ea9999;"> at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)</span><br />
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody0(SafeContextLoaderListener.java:75)</span><br />
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody1$advice(SafeContextLoaderListener.java:57)</span><br />
<span style="color: #ea9999;"> at org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(SafeContextLoaderListener.java:1)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardService.start(StandardService.java:525)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.Catalina.start(Catalina.java:595)</span><br />
<span style="color: #ea9999;"> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</span><br />
<span style="color: #ea9999;"> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</span><br />
<span style="color: #ea9999;"> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</span><br />
<span style="color: #ea9999;"> at java.lang.reflect.Method.invoke(Method.java:597)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)</span><br />
<span style="color: #ea9999;"> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)</span><br />
<span style="color: #ea9999;">SafeContextLoaderListener:</span><br />
<span style="color: #ea9999;">The Spring ContextLoaderListener we wrap threw on contextInitialized.</span><br />
<div>
<br />
<b><span style="color: lime;">Solution:</span></b><br />
<br />
Basically you might get this because of these reasons (I used to get):<br />
1. Jar files not found in applications WEB-INF/lib directory<br />
Or, some jars are conflicting with each other.<br />
Check for same jars in different versions should not exist (at least in some cases).<br />
<br />
2. Check you maven's dependencies (for getting these jars).<br />
You can use <a href="http://java-with-shiva.blogspot.in/2013/06/mvn-dependencytree-or-mvn.html" target="_blank">mvn dependency:tree</a> to find out if there is any jar loaded twice, which might be causing conflict.<br />
<br />
3. the pom.xml file should contain proper dependencies.<br />
deployerConfigContext.xml, ticketRegistry.xml should have right beans and configured properly depending on your CAS server (Basically different CAS servers use different configurations in these files).</div>
Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-87494043596891030532013-06-26T07:56:00.002-07:002013-06-30T09:30:25.889-07:00Cannot execute mojo: tree. It requires a project with an existing pom.xml, but the build is not using oneWhen
run below command :<br />
<pre class='prettyprint'>
<b>[root@www
~]# mvn dependency:tree</b></pre>
<br />
Result:
<br /><pre class='prettyprint'>
[INFO]
Scanning for projects...<br />
[INFO]
Searching repository for plugin with prefix: 'dependency'.<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
Building Maven Default Project<br />
[INFO]
task-segment: [dependency:tree]<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
------------------------------------------------------------------------<br />
[ERROR]
BUILD ERROR<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
Cannot execute mojo: tree. It requires a project with an existing pom.xml, but
the build is not using one.<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
For more information, <b>run Maven with the -e switch</b><br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
Total time: < 1 second<br />
[INFO]
Finished at: Wed Jun 26 02:38:40 EDT 2013<br />
[INFO]
Final Memory: 3M/61M<br />
[INFO]
------------------------------------------------------------------------<br />
</pre>
<br />
Try with the -e option:
<pre class='prettyprint'>
<b>[root@www ~]# mvn -e dependency:tree</b><br /></pre>
<br />
Result:
<pre class='prettyprint'>
+ Error stacktraces are turned on.<br />
[INFO]
Scanning for projects...<br />
[INFO]
Searching repository for plugin with prefix: 'dependency'.<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
Building Maven Default Project<br />
[INFO]
task-segment: [dependency:tree]<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
------------------------------------------------------------------------<br />
[ERROR]
BUILD ERROR<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO] <b>Cannot
execute mojo: tree. It requires a project with an existing pom.xml, but the
build is not using one.</b><br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
Trace<br />
org.apache.maven.lifecycle.LifecycleExecutionException:
Cannot execute mojo: tree. It requires a project with an existing pom.xml, but
the build is not using one.<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)<br />
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)<br />
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)<br />
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)<br />
at
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)<br />
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
at java.lang.reflect.Method.invoke(Method.java:597)<br />
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)<br />
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)<br />
at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)<br />
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)<br />
Caused
by: org.apache.maven.plugin.MojoExecutionException: Cannot execute mojo: tree.
It requires a project with an existing pom.xml, but the build is not using
one.<br />
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:414)<br />
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)<br />
... 17 more<br />
[INFO]
------------------------------------------------------------------------<br />
[INFO]
Total time: 1 second<br />
[INFO]
Finished at: Wed Jun 26 02:38:57 EDT 2013<br />
[INFO]
Final Memory: 3M/61M<br />
[INFO]
------------------------------------------------------------------------<br />
</pre>
<br />
Normally
this error happens, when you try to run the <b>mvn dependency:tree</b> command
from a location, where it does not find a POM.<br />
<b>mvn
dependency:tree is used to see/verify the dependency between jars used in a
particular project.</b><br />
<b><br /></b>
So,
the solution is :<br />
navigate
to your project directory and where you have the pom.xml file for the project
you want to verify the jar dependencies:<br />
For
example, like<br /><pre class='prettyprint'>
# cd /opt/cas-workspace/local-cas<br /></pre>
<br />
Thats
the location of my workspace, containing my projects pom file.<br />
<br />
<pre class='prettyprint'>
[root@www local-cas]# ls -l<br />
total
20<br />
-rw-r--r--
1 root root 8795 Jun 25 11:33 pom.xml<br />
drwxr-xr-x
3 root root 4096 Jun 5 07:33 src<br />
drwxr-xr-x
5 root root 4096 Jun 25 11:57 target<br /></pre>
<div>
<br /></div>
<br />
<div>
So, now you can run the <b>mvn dependency:tree</b> command.<br />
<br />
References:<br />
<a href="http://maven.apache.org/plugins/maven-dependency-plugin/usage.html" target="_blank">http://maven.apache.org/plugins/maven-dependency-plugin/usage.html</a><br />
<a href="http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html" target="_blank">http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html</a></div>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-18218538977320511232013-06-26T04:28:00.001-07:002013-06-30T09:07:09.561-07:00Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argumentError:<br />
<pre class="prettyprint">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ticketRegistry' defined in ServletContext resource [/WEB-INF/spring-configuration/ticketRegistry.xml]: Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/deployerConfigContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver
<span class="Apple-tab-span" style="white-space: pre;"> </span>at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)</pre>
<div>
<br /></div>
<div>
Solution:</div>
<div>
If you are using Hibernate 3.5 or above, You should remove the dependency on hibernate-annotations from your maven pom file.</div>
<div>
<br /></div>
<div>
If you got this while building CAS server using the root pom file.</div>
<div>
<br /></div>
<div>
Try removing any spring related dependencies mentioned in the projects root POM file. Internally the CAS will download all the spring dependencies.</div>
<div>
<br />
Also, add the corresponding Database driver jar file. Or add it to your pom's dependency.<br />
e.g.:<br />
For adding MySQL Server driver, the Maven's POM dependency would be:<br />
<br />
<pre class="prettyprint"><span class="Apple-tab-span" style="white-space: pre;"> </span><dependency>
<span class="Apple-tab-span" style="white-space: pre;"> </span><groupId>mysql</groupId>
<span class="Apple-tab-span" style="white-space: pre;"> </span><artifactId>mysql-connector-java</artifactId>
<span class="Apple-tab-span" style="white-space: pre;"> </span><version>5.1.13</version>
<span class="Apple-tab-span" style="white-space: pre;"> </span><scope>runtime</scope>
<span class="Apple-tab-span" style="white-space: pre;"> </span></dependency></pre>
</div>
<div>
<br /></div>
<div>
References:</div>
<div>
<a href="http://stackoverflow.com/questions/9134436/how-can-i-resolve-java-lang-classnotfoundexception-org-hibernate-util-dtdentity" target="_blank">http://stackoverflow.com/questions/9134436/how-can-i-resolve-java-lang-classnotfoundexception-org-hibernate-util-dtdentity</a></div>
<div>
<a href="http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#setup-requirements" target="_blank">http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#setup-requirements</a></div>
Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-55516841346974363472013-06-26T01:22:00.001-07:002013-06-30T09:48:58.302-07:00Purging / Delete local maven (mvn) repositoryLocal mvn repository is nothing but a cache of part of the contents of online repository.<br />
Sometimes it becomes messy with duplicate jars.<br />
So, time to time we should clean the local maven repository (only when you should have internet access and can download again from online repositories):<br />
<br />
maven repository is located in your systems, current users home / root path inside a directory named ".m2".<br />
<br />
<pre class="prettyprint">In windows it should be at : C:\Documents and Settings\<username>\
In Linux, it should be at : ~ (root location)
</pre>
<br />
in Unix, navigate to that directory and then delete the "repository" directory. and rebuild the pom.xml<br />
<br />
Go to the root:<br />
<pre class="prettyprint">[root@www ~]# cd
</pre>
<br />
List out the contents in root, with -a attrribute, to show system, hidden files/directories too (basically files with all attributes will be listed):<br />
<pre class="prettyprint">[root@www ~]# ls -la
</pre>
Result should show something like this below:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK0Zt0lS7aFkRQLHqcn1Id-M3QHReEopotcY5b2sx1m1S3-Gq1NEYFO6OravQpixYiTGXdqfnfsJ62i0aH7DXXbzsy_zmmoy_vYy_12wSpqBKy-NIpQlnB2lu6Li3YQ9_xIVxHlCr13g/s1600/2013-06-26+13_35_21.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="82" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK0Zt0lS7aFkRQLHqcn1Id-M3QHReEopotcY5b2sx1m1S3-Gq1NEYFO6OravQpixYiTGXdqfnfsJ62i0aH7DXXbzsy_zmmoy_vYy_12wSpqBKy-NIpQlnB2lu6Li3YQ9_xIVxHlCr13g/s400/2013-06-26+13_35_21.png" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
Delete the repository dir:<br />
<pre class="prettyprint">[root@www ~]# rm -rf ~/.m2/repository
[root@www ~]# cd .m2
[root@www .m2]# ls -l
total 0
</pre>
<div>
<br /></div>
<div>
Now again do a build of your project's pom file:</div>
<div>
Navigate to your projects pom file directory:</div>
<div>
# cd <projects workspace location containing pom.xml></div>
<div>
# mvn clean package</div>
<div>
<br /></div>
<div>
It should then download all required jars to the same repository again.<br />
<br />
Otherwise you can use the command : <b>mvn dependency:purge-local-repository</b><br />
The default behaviour of the plugin is to first resolve the entire dependency tree, then delete the contents from the local repository, and then re-resolve the dependencies from the remote repository.<br />
<br />
References:<br />
<a href="http://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html" target="_blank">http://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html</a></div>
Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-72889242100309701752013-06-25T09:03:00.001-07:002013-06-25T09:06:43.862-07:00dependencies.dependency.version is missing for org.hibernate hibernate-core jar and other hibernate jars<div style="background-color: white;">
# mvn clean package</div>
<div style="background-color: white;">
<span style="color: #e06666;">[INFO] Scanning for projects...</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">[INFO] ------------------------------<wbr></wbr>------------------------------<wbr></wbr>------------</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">[ERROR] FATAL ERROR</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">[INFO] ------------------------------<wbr></wbr>------------------------------<wbr></wbr>------------</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">[INFO] Error building POM (may not be this project's POM).</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;">Project ID: rsi.ddms.cas:local-cas</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">POM Location: /opt/cas-workspace/local-cas/<wbr></wbr>pom.xml</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">Validation Messages:</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> [0] 'dependencies.dependency.<wbr></wbr>version' is missing for org.hibernate:hibernate-core:<wbr></wbr>jar</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> [1] 'dependencies.dependency.<wbr></wbr>version' is missing for org.hibernate:hibernate-<wbr></wbr>entitymanager:jar</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;">Reason: Failed to validate POM for project rsi.ddms.cas:local-cas at /opt/cas-workspace/local-cas/<wbr></wbr>pom.xml</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;"><br /></span></div>
<div style="background-color: white;">
<span style="color: #e06666;">[INFO] ------------------------------<wbr></wbr>------------------------------<wbr></wbr>------------</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">[INFO] Trace</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">org.apache.maven.reactor.<wbr></wbr>MavenExecutionException: Failed to validate POM for project rsi.ddms.cas:local-cas at /opt/cas-workspace/local-cas/<wbr></wbr>pom.xml</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.DefaultMaven.<wbr></wbr>getProjects(DefaultMaven.java:<wbr></wbr>404)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.DefaultMaven.<wbr></wbr>doExecute(DefaultMaven.java:<wbr></wbr>272)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.DefaultMaven.<wbr></wbr>execute(DefaultMaven.java:138)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.cli.MavenCli.<wbr></wbr>main(MavenCli.java:362)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.cli.compat.<wbr></wbr>CompatibleMain.main(<wbr></wbr>CompatibleMain.java:60)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at sun.reflect.<wbr></wbr>NativeMethodAccessorImpl.<wbr></wbr>invoke0(Native Method)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at sun.reflect.<wbr></wbr>NativeMethodAccessorImpl.<wbr></wbr>invoke(<wbr></wbr>NativeMethodAccessorImpl.java:<wbr></wbr>39)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at sun.reflect.<wbr></wbr>DelegatingMethodAccessorImpl.<wbr></wbr>invoke(<wbr></wbr>DelegatingMethodAccessorImpl.<wbr></wbr>java:25)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at java.lang.reflect.Method.<wbr></wbr>invoke(Method.java:597)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.codehaus.classworlds.<wbr></wbr>Launcher.launchEnhanced(<wbr></wbr>Launcher.java:315)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.codehaus.classworlds.<wbr></wbr>Launcher.launch(Launcher.java:<wbr></wbr>255)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.codehaus.classworlds.<wbr></wbr>Launcher.mainWithExitCode(<wbr></wbr>Launcher.java:430)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.codehaus.classworlds.<wbr></wbr>Launcher.main(Launcher.java:<wbr></wbr>375)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;">Caused by: org.apache.maven.project.<wbr></wbr>InvalidProjectModelException: Failed to validate POM for project rsi.ddms.cas:local-cas at /opt/cas-workspace/local-cas/<wbr></wbr>pom.xml</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.project.<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>processProjectLogic(<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>java:1077)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.project.<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>buildInternal(<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>java:880)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.project.<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>buildFromSourceFileInternal(<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>java:508)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.project.<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>build(<wbr></wbr>DefaultMavenProjectBuilder.<wbr></wbr>java:200)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.DefaultMaven.<wbr></wbr>getProject(DefaultMaven.java:<wbr></wbr>604)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.DefaultMaven.<wbr></wbr>collectProjects(DefaultMaven.<wbr></wbr>java:487)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> at org.apache.maven.DefaultMaven.<wbr></wbr>getProjects(DefaultMaven.java:<wbr></wbr>391)</span></div>
<div style="background-color: white;">
<span style="color: #e06666;"> ... 12 more</span></div>
<div style="background-color: white;">
<br /></div>
<div style="background-color: white;">
Basically, we get this error while doing maven build.</div>
<div style="background-color: white;">
The reason is that, your pom xml file does not either have the version tag specified for that artifact to be downloaded. </div>
<div style="background-color: white;">
Or the jar is not found in the repositories mentioned there in.</div>
<div style="background-color: white;">
<br /></div>
<div style="background-color: white;">
<b>Simple Solution is :</b></div>
<div style="background-color: white;">
<br /></div>
<div style="background-color: white;">
Add the version tag in your pom file as:</div>
<div style="background-color: white;">
<br /></div>
<pre style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;"><code style="border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><dependency></span><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><groupId></span><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">org.hibernate</span><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></<wbr></wbr>groupId></span><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><artifactId></span><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">hibernate-core</span><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></<wbr></wbr>artifactId></span><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><b><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"><version></span><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">3.6.10.Final</span><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></<wbr></wbr>version></span></b><span style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
</span><span style="background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;"></dependency></span></code></pre>
<div style="background-color: white;">
<br /></div>
<div style="background-color: white;">
<br />
<div>
<span style="background-color: black;">References:</span></div>
<div>
<a href="http://stackoverflow.com/questions/1230249/how-can-i-use-maven-to-get-the-latest-hibernate-release" style="color: #1155cc;" target="_blank"><span style="background-color: black;">http://stackoverflow.com/<wbr></wbr>questions/1230249/how-can-i-<wbr></wbr>use-maven-to-get-the-latest-<wbr></wbr>hibernate-release</span></a></div>
</div>
Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-57907541158754939892013-06-24T01:44:00.000-07:002013-06-24T01:44:08.113-07:00How to Set Up Apache Virtual Hosts on CentOS 6Sometimes when we want to run / host multiple domain (websites) on a single server with a single public IP address, we need to setup Virtual hosts using apache server to achieve the same.<br />
<br />
Here is a very nice article on that:<br />
<a href="https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-centos-6" target="_blank">https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-centos-6</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-17420678084163421242013-06-20T03:29:00.000-07:002013-06-20T03:29:01.820-07:00Free Code Syntax Highlighters for your website or blogsFree Javascript (JS) Code Syntax Highlighters For For your websites or blogs:<br />
<br />
Below is a very nice post:<br />
<a href="http://www.1stwebdesigner.com/css/16-free-javascript-code-syntax-highlighters-for-better-programming/" target="_blank">http://www.1stwebdesigner.com/css/16-free-javascript-code-syntax-highlighters-for-better-programming/</a><br />
<br />
<a href="http://tools.dottoro.com/services/highlighter/" target="_blank">http://tools.dottoro.com/services/highlighter/</a>Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0tag:blogger.com,1999:blog-8080410135420199563.post-83494332324891587402013-06-19T04:52:00.000-07:002013-06-20T07:11:27.826-07:00sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provid er.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetI got this exception, while my demo java web application tried to communicate CAS application (deployed in tomcat) using SSL.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG8TH0u_9GaGC0__u7LS_95LXNQZnKCuNvArGI89mPT11d6yo-0aQvcUl7pU9Xxu0PYnH4uA09cARUI5xlRmvXzkL_5GrDFDfqKqZIaVn4qmGTiMmSvy60F1wM-8rEILok73FamMQDjQ/s1600/2013-06-19+16_21_17.png.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG8TH0u_9GaGC0__u7LS_95LXNQZnKCuNvArGI89mPT11d6yo-0aQvcUl7pU9Xxu0PYnH4uA09cARUI5xlRmvXzkL_5GrDFDfqKqZIaVn4qmGTiMmSvy60F1wM-8rEILok73FamMQDjQ/s400/2013-06-19+16_21_17.png.jpg" width="400" /></a></div>
<br />
<br />
<br />
I have my tomcat server already <a href="http://java-with-shiva.blogspot.in/2013/05/configuring-installing-ssl-https-on.html" target="_blank">configured using SSL certificates</a> and using a keystore file to have the security certificate.<br />
<br />
<br />
<br />
<br />
I got below stacktrace of the errors in my console:<br />
<span style="color: #e06666;">Jun 19, 2013 4:26:27 PM org.jasig.cas.client.util.CommonUtils getResponseFromServer</span><br />
<span style="color: #e06666;">SEVERE: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</span><br />
<span style="color: #e06666;">javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:187)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:181)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1035)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:124)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:418)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1041)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:326)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:305)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:50)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:207)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:169)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:116)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:881)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:674)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:541)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at java.lang.Thread.run(Thread.java:619)</span><br />
<span style="color: #e06666;">Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:285)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:191)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at sun.security.validator.Validator.validate(Validator.java:218)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1014)</span><br />
<span style="color: #e06666;"><span class="Apple-tab-span" style="white-space: pre;"> </span>... 33 more</span><br />
<br />
<br />
Below is my tomcat's "server.xml" section having SSL configuration details:<br />
<br />
<span style="color: #a2c4c9;"><Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"</span><br />
<span style="color: #a2c4c9;"> address="216.113.229.31"</span><br />
<span style="color: #a2c4c9;"> maxThreads="150" scheme="https" secure="true"</span><br />
<span style="color: #a2c4c9;"> truststoreFile="/usr/local/apache-tomcat-6.0.37/conf/cacerts.jks" truststorePass="changeit"</span><br />
<span style="color: #a2c4c9;"> keystoreFile="/usr/local/apache-tomcat-6.0.37/conf/myServerKeystore.jks" keystorePass="changeit"</span><br />
<span style="color: #a2c4c9;"> clientAuth="false" sslProtocol="TLS" /></span><br />
<br />
Also, I have imported server Root CA certificate into my browsers.<br />
<br />
The reason of the above error, I could figured out is that:<br />
Though I have configured the tomcat to use, "<span style="color: #a2c4c9;">myServerKeystore.jks</span>" java keystore file.<br />
But the Java web applications seems to use by default the security certificates available in the "cacerts" file (located at $JAVA_HOME/jre/lib/security/).<br />
<br />
<b><span style="color: lime;">The 1st solutions is:</span></b><br />
<span style="color: cyan;">step 1.</span> <br />
Copy your "cacerts" file (located at $JAVA_HOME/jre/lib/security/ ) to some safe backup location in case to be able to revert back to original.<br />
<div>
<br /></div>
<div>
<span style="color: cyan;">step 2. </span></div>
Export the security certificates from your keystore file (in my case its "<span style="color: #a2c4c9;">myServerKeystore.jks</span>") into "cacerts" (located at $JAVA_HOME/jre/lib/security/ ) .<br />
<br />
Using Below command in Linx (Similarly you can achieve it in Windows too) to import ssl certificate from one keystore into another keystore <a href="http://java-with-shiva.blogspot.in/2013/06/using-java-keytool-for-creating-ssl.html" target="_blank">using keytool</a>:<br />
<br />
<i># keytool -importkeystore -destkeystore /usr/java/default/jre/lib/security/cacerts -srckeystore </i>myServerKeystore.jks<br />
<br />
For windows above can be some thing like this:<br />
C:\certs> keytool -importkeystore -destkeystore C:\Program Files\Java\jdk1.6.0_24\jre\lib\security\cacerts -srckeystore myServerKeystore.jks<br />
<br />
Assuming "<span style="color: #a2c4c9;">myServerKeystore.jks</span>" is at "C:\certs" or accordingly provide the path above for your keystore.<br />
Result will be something like below:<br />
<br />
<span style="color: #9fc5e8;">Enter destination keystore password: <b>[enter password here, default is "changeit"]</b></span><br />
<span style="color: #9fc5e8;">Enter source keystore password:<b> [enter password here, default is "changeit"]</b></span><br />
<span style="color: #9fc5e8;">Entry for alias localhostservcert successfully imported.</span><br />
<span style="color: #9fc5e8;">Import command completed: 1 entries successfully imported, 0 entries failed or cancelled</span><br />
<br />
Marked in bold above are, meant to be changed if required as per your settings.<br />
<br />
<span style="color: orange;">Now, restart your server and try again.</span><br />
<span style="color: orange;">Above exception should have been resolved.</span><br />
<br />
<br />
<br />
If still the issue has not resolved yet, Please consider below importing the root certificate into "cacerts" :<br />
<br />
<b><span style="color: lime;">The 2nd solutions is:</span></b><br />
<br />
<span style="color: cyan;">step 1. </span><br />
Copy your "cacerts" file (located at $JAVA_HOME/jre/lib/security/ ) to some safe backup location in case to be able to revert back to original.<br />
<div>
<br /></div>
<div>
<span style="color: cyan;">step 2. </span><br />
Sometimes, the certificate to be imported MUST be a DER-encoded file. If the contents of the certificate file are binary, it's likely DER-encoded; if the file begins with the text ---BEGIN CERTIFICATE---, it is PEM-encoded and needs to be converted to DER encoding.<br />
So if your root certificate is a PEM encoded, Convert your to a DER format using below command:<br />
<br />
# openssl x509 -in casRootCAcert.crt -out casRootCAcert.der -outform DER<br />
<br />
Where "casRootCAcert.crt" is my original root CA certificate (the one you used while creating server certificates). As I created in <a href="http://java-with-shiva.blogspot.in/2013/05/configuring-installing-ssl-https-on.html" target="_blank">this tutorial</a>.<br />
And where as "casRootCAcert.der" is the new DER formated root CA.<br />
<br />
<span style="color: cyan;">step 3.</span><br />
Now Export the DER formatted Root CA certificate into "cacerts" (located at $JAVA_HOME/jre/lib/security/ ).<br />
<br />
# keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file casRootCAcert.der -alias myservercert<br />
<br />
Now, restart your server and try again.<br />
Above exception should have been resolved.<br />
<br />
<span style="color: cyan;">step 4.</span></div>
<div>
List out to see if the $JAVA_HOME/jre/lib/security/cacerts has your trusted certificate alias:<br />
# keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts<br />
<br />
Look for your server certificate alias name, like above, look for "myservercert" or by default it creates an alias named as "mykey".<br />
If it exist, then time to test your ssl connection again.<br />
<br />
<span style="color: orange;">Now, restart your server and try again.</span><br />
<span style="color: orange;">Above exception should have been resolved.</span><br />
<br />
<br />
<br /></div>
If you are looking for how to automatically create certificates and import it into keystore, for your development environment, please <a href="http://java-with-shiva.blogspot.in/2013/06/creating-keystore-file-using.html" target="_blank"><span id="goog_421449173"></span>follow this post<span id="goog_421449174"></span></a>.<br />
<br />
References used:<br />
<a href="https://wiki.jasig.org/display/CASUM/SSL+Troubleshooting+and+Reference+Guide" target="_blank">https://wiki.jasig.org/display/CASUM/SSL+Troubleshooting+and+Reference+Guide</a><br />
<a href="http://stackoverflow.com/questions/9619030/resolving-javax-net-ssl-sslhandshakeexception-sun-security-validator-validatore?rq=1" target="_blank">http://stackoverflow.com/questions/9619030/resolving-javax-net-ssl-sslhandshakeexception-sun-security-validator-validatore?rq=1</a><br />
<br />
<br />Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com1tag:blogger.com,1999:blog-8080410135420199563.post-11815652396404428612013-06-19T03:34:00.002-07:002013-06-19T04:56:03.146-07:00Creating KeyStore file using "InstallCert.java" to configure SSL on Development Env<span style="color: lime;">This post describes how to Generate / Create and Test a KeyStore file using "InstallCert.java" to configure SSL (https) on local Development Environment.</span><br />
<br />
If you landed on this page because of the error "<span style="color: #e06666;">sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provid er.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</span>", while using SSL configuration on your server for your java application, please <a href="http://java-with-shiva.blogspot.in/2013/06/sunsecurityvalidatorvalidatorexception_19.html" target="_blank">follow this post</a>:<br />
<br />
I used the "InstallCert.java" java class, mentioned at <a href="http://nodsw.com/blog/leeland/2006/12/06-no-more-unable-find-valid-certification-path-requested-target" target="_blank">this link</a> to create and add a certificate into javakeystore which I could use in my development environment's tomcat server to achieve SSL.<br />
<br />
Assuming you have the "InstallCert.java" file downloaded to your local system and compiled it.<br />
In my case, I have compiled it to a location "<i>D:\MyEclipse8_WS\compAproj\src"</i>:<br />
<br />
Run the java command, passing the server's hostname, (in my case, its "localhost", for the development env):<br />
<i>D:\MyEclipse8_WS\compAproj\src> java InstallCert localhost</i><br />
<i><br /></i>
[You could have passed some think like this also:<br />
<i>D:\MyEclipse8_WS\compAproj\src> </i><i>java InstallCert www.xyz.com</i><br />
where "<i>www.xyz.com"</i> is your test env domain/host name.]<br />
<br />
<span style="color: #f9cb9c;">You will get a Result like below:</span><br />
<span style="color: #9fc5e8;">Loading KeyStore C:\Program Files\Java\jre7\lib\security\cacerts...</span><br />
<span style="color: #9fc5e8;">Opening connection to localhost:443...</span><br />
<span style="color: #9fc5e8;">Starting SSL handshake...</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building f</span><br />
<span style="color: #9fc5e8;">ailed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certificatio</span><br />
<span style="color: #9fc5e8;">n path to requested target</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.Alerts.getSSLException(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.Handshaker.fatalSE(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.Handshaker.fatalSE(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.Handshaker.processLoop(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.Handshaker.process_record(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at InstallCert.main(InstallCert.java:100)</span><br />
<span style="color: #9fc5e8;">Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provid</span><br />
<span style="color: #9fc5e8;">er.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;"> at sun.security.validator.PKIXValidator.doBuild(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.validator.Validator.validate(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at InstallCert$SavingTrustManager.checkServerTrusted(InstallCert.java:195)</span><br />
<span style="color: #9fc5e8;"> at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> ... 9 more</span><br />
<span style="color: #9fc5e8;">Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certific</span><br />
<span style="color: #9fc5e8;">ation path to requested target</span><br />
<span style="color: #9fc5e8;"> at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> at java.security.cert.CertPathBuilder.build(Unknown Source)</span><br />
<span style="color: #9fc5e8;"> ... 17 more</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">Server sent 1 certificate(s):</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;"> 1 Subject CN=localhost, OU=DDMS, O=RSI, L=Bangalore, ST=Karnatak, C=IN</span><br />
<span style="color: #9fc5e8;"> Issuer CN=localhost, OU=DDMS, O=RSI, L=Bangalore, ST=Karnatak, C=IN</span><br />
<span style="color: #9fc5e8;"> sha1 6e ee e0 c7 19 5f ee ab 6f e0 bd 60 db 56 fa 7f 9a 82 dc 08</span><br />
<span style="color: #9fc5e8;"> md5 31 b6 06 9f 77 58 33 3b b8 ad 79 9b 44 77 a9 b0</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">Enter certificate to add to trusted keystore or 'q' to quit: [1]</span><br />
<span style="color: #9fc5e8;">1</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">[</span><br />
<span style="color: #9fc5e8;">[</span><br />
<span style="color: #9fc5e8;"> Version: V3</span><br />
<span style="color: #9fc5e8;"> Subject: CN=localhost, OU=DDMS, O=RSI, L=Bangalore, ST=Karnatak, C=IN</span><br />
<span style="color: #9fc5e8;"> Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;"> Key: Sun RSA public key, 1024 bits</span><br />
<span style="color: #9fc5e8;"> modulus: 92659808969929865129336241341967971654025457738531240931492821310253581021652160736911057</span><br />
<span style="color: #9fc5e8;">8703736995831932144701336033660310891386958539146005637308769188367103225061070068772345915142571293</span><br />
<span style="color: #9fc5e8;">8993861368030004277914233863759887059296889665823492198040834084491251919373806193796848922810680430</span><br />
<span style="color: #9fc5e8;">7637917119048358073</span><br />
<span style="color: #9fc5e8;"> public exponent: 65537</span><br />
<span style="color: #9fc5e8;"> Validity: [From: Mon Jun 10 17:00:58 GMT+05:30 2013,</span><br />
<span style="color: #9fc5e8;"> To: Sun Sep 08 17:00:58 GMT+05:30 2013]</span><br />
<span style="color: #9fc5e8;"> Issuer: CN=localhost, OU=DDMS, O=RSI, L=Bangalore, ST=Karnatak, C=IN</span><br />
<span style="color: #9fc5e8;"> SerialNumber: [ 51b5b8f2]</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">]</span><br />
<span style="color: #9fc5e8;"> Algorithm: [SHA1withRSA]</span><br />
<span style="color: #9fc5e8;"> Signature:</span><br />
<span style="color: #9fc5e8;">0000: 65 4F 4F 86 21 1C CF A6 50 BD B0 29 CE C8 6F F9 eOO.!...P..)..o.</span><br />
<span style="color: #9fc5e8;">0010: DE C1 99 47 29 21 0F 8F 24 36 43 0C 3B 75 21 D6 ...G)!..$6C.;u!.</span><br />
<span style="color: #9fc5e8;">0020: 81 D2 15 E0 F3 5E 9F 30 33 EC 0F 65 28 2D 0E F1 .....^.03..e(-..</span><br />
<span style="color: #9fc5e8;">0030: F0 76 3D A0 C0 D1 18 41 5B FB 1B C5 FB 7B B8 52 .v=....A[......R</span><br />
<span style="color: #9fc5e8;">0040: 62 CE A7 34 32 06 A2 F7 2E BB 78 55 1A CE B0 50 b..42.....xU...P</span><br />
<span style="color: #9fc5e8;">0050: A3 2E 3E 32 68 7F EE 6C 83 D4 9E 76 E7 14 B7 C0 ..>2h..l...v....</span><br />
<span style="color: #9fc5e8;">0060: 91 C6 22 B2 C6 A9 CC 2F E0 06 3A F1 50 92 15 FC .."..../..:.P...</span><br />
<span style="color: #9fc5e8;">0070: C5 F6 1A 12 4E 52 38 31 99 32 E1 66 D2 7D 49 EB ....NR81.2.f..I.</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">]</span><br />
<span style="color: #9fc5e8;"><br /></span>
<span style="color: #9fc5e8;">Added certificate to keystore 'jssecacerts' using alias 'localhost-1'</span><br />
<br />
<br />
To List out the keystore to see if our certificate (named as 'localhost-1' along with other certificates imported from %JAVA_HOME%\jre\lib\security\cacerts) is in there:<br />
<i>D:\MyEclipse8_WS\compAproj\src>keytool -list -keystore jssecacerts</i><br />
<br />
So, we have the keystore generated for us.<br />
Now we have two ways to use the generated keystore file:<br />
1st way:<br />
Configure the keystore to be used as the default keystore using some environment variable settings as per the java documentation.<br />
<br />
Or, 2nd way:<br />
Do below steps:<br />
1. copy your "cacerts" file (located at %JAVA_HOME%\jre\lib\security\ ) to some safe backup location.<br />
2. rename the "<i>jssecacerts</i>" file (generated above) as "cacerts"<br />
3. copy the newly renamed file "cacerts" into location %JAVA_HOME%\jre\lib\security\<br />
And if asked to overwrite, say Yes.<br />
<br />
Now,<br />
For the 2nd time, run the Java command, to test/verify that, your SSL is configured correctly to be used with your java web applications :<br />
<br />
<i>D:\MyEclipse8_WS\compAproj\src> java InstallCert localhost</i><br />
<br />
This time there should be no errors. That means Java application can do a proper SSL handshake with the server.<br />
Congrats !!<br />
<br />
<br />
You can follow these posts as references, which might be helpful to you : <a href="http://nodsw.com/blog/leeland/2006/12/06-no-more-unable-find-valid-certification-path-requested-target" target="_blank">http://nodsw.com/blog/leeland/2006/12/06-no-more-unable-find-valid-certification-path-requested-target</a><br />
Or<br />
<a href="http://www.java-samples.com/showtutorial.php?tutorialid=210" target="_blank">http://www.java-samples.com/showtutorial.php?tutorialid=210</a><br />
<br />
<a href="http://www.novell.com/communities/node/13621/cacerts-dummies" target="_blank">http://www.novell.com/communities/node/13621/cacerts-dummies</a><br />
<br />Shibaramhttp://www.blogger.com/profile/05340978530024804647noreply@blogger.com0