Dojo, Javascript, JQuery, JQuery UI, ROO

[Guida] Utilizzare JQuery 1.4.2 & JQuery UI 1.8.2 & Dojo su ROO

Non è semplice (almeno alla prima botta) utilizzare JQuery 1.4.2 insieme a JQuery UI 1.8.2 in un progetto dove è già presente il framework Dojo.

Nel mio caso il progetto era stato creato su Roo 1.0.2. con il nome di pizzashop

Per inserire JQuery è necessario modificare la pagina “default.jspx” che si trova nella cartella layout

Qui riporto la parte dell’HEAD che deve essere modificato:

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<meta http-equiv=”X-UA-Compatible” content=”IE=8″ />
<spring:theme code=”styleSheet” var=”roo_css”/>
<spring:url value=”/${roo_css}” var=”roo_css_url”/>
<spring:url value=”/resources/dojo/dojo.js” var=”dojo_url”/>
<spring:url value=”/resources/dijit/themes/soria/soria.css” var=”soria_url”/>
<spring:url value=”/resources/spring/Spring.js” var=”spring_url”/>
<spring:url value=”/resources/spring/Spring-Dojo.js” var=”spring_dojo_url”/>
<spring:url value=”/static/images/fir.ico” var=”favicon” />
<link rel=”stylesheet” type=”text/css” media=”screen” href=”${roo_css_url}”><!– //required for FF3 and Opera –></link>
<link rel=”stylesheet” type=”text/css” href=”${soria_url}”><!– //required for FF3 and Opera –></link>
<link rel=”SHORTCUT ICON” href=”${favicon}” />
<script type=”text/javascript”><![CDATA[
function readCookie(name) {
var nameEQ = name + ‘=’;
var ca = document.cookie.split(‘;’);
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==’ ‘) c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
var djConfig={locale:readCookie(‘locale’)};
]]>
</script>
<script src=”${dojo_url}” type=”text/javascript” > //required for FF3 and Opera –></script>
<script src=”${spring_url}” type=”text/javascript”> //required for FF3 and Opera –></script>
<script src=”${spring_dojo_url}” type=”text/javascript”> //required for FF3 and Opera –></script>
<script language=”JavaScript” type=”text/javascript”>jQuery.noConflict();</script>
<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js&#8221; language=”JavaScript”></script>
<script language=”JavaScript” type=”text/javascript”>jQuery.noConflict();</script>
<script language=”JavaScript” type=”text/javascript”>dojo.require(“dojo.parser”);</script>
<spring:message code=”application.name” var=”app_name”/>
<title><spring:message code=”welcome.h3″ arguments=”${app_name}” /></title>
</head>
Il trucco stà nell’inserire dopo l’importazione di ognuna delle librerie JQUERY la notazione <script language=”JavaScript” type=”text/javascript”>jQuery.noConflict();</script> , infatti senza questa notazione il browser noterà solo la prima importazione.


Annunci
Hibernate, Mysql, ROO, Spring, tc Server
Questa guida vuole essere un piccolo punto di riferimento per la costruzione di un DataSource all’interno dell’ambiente tc Server di Spring Tool Suite, nella fattispecie utilizzando Mysql 5 come DB e Hibernate come Framework per la persistenza.
La Guida è stata testa sia per STS 2.3.2 che per STS 2.3.3

Cambiamenti da effettuare all’interno di:

Server > [SpringSource tc Server v6.0-config | SpringSource tc Developer 2.0 ] (files che si trovano dentro il workspace, creati automaticamente da STS 2.3.2)

context.xml:
All’interno del tag <Context>

<Resource     name="${Nome data source}” 
                auth="Container" 
                type="javax.sql.DataSource" 
                  maxActive="10" 
                  maxIdle="10" 
                  maxWait="10000" 
                  username="root" 
                  password="root" 
                  driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/${nome database utilizzato}"/>

server.xml
Dentro il tag <GlobalNamingResources>

<Resource     name="${Nome data source} 
                auth="Container" 
                type="javax.sql.DataSource" 
                  maxActive="10" 
                  maxIdle="10" 
                  maxWait="10000" 
                  username="root" 
                  password="root" 
                  driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/${nome database utilizzato}"/>

web.xml
Subito dopo il tag <webapp>

    <description>MySQL Test App</description>
      <resource-ref>
          <description>DB Connection Mysql</description>
          <res-ref-name>${nome datasource}</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>

PS: il nome del datasource deve essere sempre lo stesso



Cambiamenti da effettuale all’interno del nostro progetto:

web.xml
Subito dopo il tag <webapp>

    <description>MySQL Test App</description>
      <resource-ref>
          <description>DB Connection Mysql</description>
          <res-ref-name>${nome datasource}</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>

PS: il nome del datasource deve essere sempre lo stesso


Nella cartella che contiene il server (es: /opt/springsource/tc server 6)

Inserire i driver JDBC connector nella cartella TOMCAT\lib (nel caso di Developer 2)

Inserire i driver JDBC connector nelle cartelle webapps-lib e lib (nel caso di Server v6.0)

Maven, ROO, Spring

[Errore] applicationContext-security.xml –> Sul tag <http auto-config="false" ….

Se il file applicationContext-security.xml contiene al suo interno un errore all’altezza del tag

<http auto-config=”false” use-expressions=”true” entry-point-ref=”loginUrlAuthenticationEntryPoint”>

con il seguente errore

Static factory method ‘createSingleAttributeList’ with 1 arguments not found in factory bean class
‘org.springframework.security.access.SecurityConfig’

Basterà aggiornate le librerie del pom.xml relative ai jar

  • org.springframework.security.core
  • org.springframework.security.config
  • org.springframework.security.web
  • org.springframework.security.taglibs

Dalla versione 3.0.0 alla versione 3.0.2; ed eseguire un clean del progetto con successivo build in modo che prenda coscienza dei nuovi package.