TOP

Consuming a RESTful Web Service

Σε αυτό το άρθρο θα μάθουμε πως μπορούμε με το Spring να καλέσουμε και να «καταναλώσουμε» ένα RESTful Web Service με τη χρήση του RestTemplate.

Η ανταλαγή μηνυμάτων JSON με χρήση AJAX στο Web είναι ίσως το δυνατότερο και ευκολότερο εργαλείο ενώς προγραμματιστή. Το spring εκεί με τα @ResponseBody και με τη χρήση του Jackson έχει απλοποιήσει εκπληκτικά τα πράγματα στην ανταλαγή μηνυμάτων. Περισσότερες πληροφορίες γι” αυτό θα βρείτε εδώ Building a RESTful Web Service. Τι γίνεται στην περίπτωση όμως που θέλουμε να καλέσουμε μια RESTful μεθοδο ενώς άλλου WS μέσα απο μια δικιά μας μέθοδο και να κάνουμε map τα αποτελέσματά της? Το Spring το κάνει επίσης πάρα πολύ εύκολο. Ξεκινάμε…

(περισσότερα…)

TOP

Create a JNDI Datasource with Tomcat 7

Μια multi-user εφαρμογή που χρησημοποιεί κάποια database δεν μπορεί να είναι αξιόπιστη αν δεν χρησημοποιεί connection pooling. Ο Tomcat 7 αντικατέστησε την απο προεπιλογή common-dbcp βιβλιοθήκη του με το Tomcat JDBC. Μπορειτε να δειτε εδώ http://www.tomcatexpert.com/blog/2012/01/24/using-tomcat-7-jdbc-connection-pool-production και εδώ http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency μερικά άρθρα γι αυτό το ζήτημα.

Έστωσαν οτι θέλουμε να φτιάξουμε ενα τέτοιο pool σε εναν Tomcat 7 για μια MySQL βάση δεδομένων. Ισοδύναμα βήματα γίνονται για ολες τις αλλες βάσεις. Τα βήματα που κάνουμε είναι τα εξής.
(περισσότερα…)

TOP

Building a mobile android app with Apache Cordoba

Ολοι εχουμε αναρωτηθεί πως μπορούμε να φτιαξουμε ευκολα και γρήγορα μια mobile android εφαρμογη με χρηση HTML5/CSS3 κλπ. Η απαντηση ειναι μια, Apache Cordoba.

To Apache cordoba ξεκινησε σαν fork του PhoneGap και εχει γνωρισει τεραστια επιτυχία. Η εγκατάσταση είναι εύκολη και απλή. Ξεκιναμε…

Θα χρειαστεί να κατεβάσουμε και να εγκαταστήσουμε (κατα προτήμηση στον ιδιο φακελο στο παραδειγμα μας θα είναι ο c:\znk.io) τα

(περισσότερα…)

TOP

Aspect Oriented Programming (AOP) σε Spring

Σε αυτό το άρθρο θα δούμε πως μπορούμε να χρησιμοποιήσουμε τα Annotations του AspectJ μαζί με Spring AOP για να αναχαιτίσουμε μεθόδους και να τρέξουμε κώδικα που χρειαζόμαστε πριν ή μετά την αναχαιτισμένη μέθοδο. Αυτή η τεχνική μας επιτρέπει να εκτελούμε διαδικασίες όπως Logging, Transactions και Profiling χωρίς να χρειαστεί να αλλάξουμε τον υπάρχων κώδικα.

Προαπαιτούμενα

1. pom.xml Εισάγουμε στο pom.xml τα παρακάτω:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-aop</artifactId>
	<version>${spring.version}</version>
</dependency>

<dependency>
	<groupId>org.aspectj</groupId>
	<artifactId>aspectjrt</artifactId>
	<version>1.6.11</version>
</dependency>

<dependency>
	<groupId>org.aspectj</groupId>
	<artifactId>aspectjweaver</artifactId>
	<version>1.6.11</version>
</dependency>

(περισσότερα…)

TOP

Χρήση Hibernate OneToMany

Σε αυτό το παράδειγμα ας υποθέσουμε ότι έχουμε Projects που το κάθε ένα έχει πολλούς μηχανικούς. Πρόκειται για μία σχέση One to Many μεταξύ της οντότητας Project και της οντότητας Engineer. Παρακάτω θα δούμε πως μπορούμε εύκολα με Annotations να εκφράσουμε αυτή την σχέση σε Hibernate και Java.

(περισσότερα…)

TOP

Spring Framework 3.2 goes GA

Ενα χρόνο μετά απο το Spring 3.1 ο Juergen Hoeller ανακοίνωσε την έκδοση 3.2 στο blog της springsource

Κύρια χαρακτηριστηκά είναι

  •  Refined Java SE 7 support
  •  Concurrency refinements across the framework
  •  Allowing for @Autowired and @Value to be used as meta-annotations
  •  Support for custom @Bean definition annotations in @Configuration classes
  •  Asynchronous MVC processing on Servlet 3.0, with Spring MVC handler methods being able to return Callables and DeferredResults
  •  Inclusion of the formerly-standalone Spring MVC Test project, allowing for first-class testing of Spring MVC applications
  •  Support for loading WebApplicationContexts in the TestContext framework, and further improvements for web application testing
  •  Early support for JCache 0.5 (JSR-107) as a backend for Spring’s cache abstraction

Για περισσότερες λεπτομέρειες μπορείτε να δείτε το σχετικό άρθρο της springsource εδώ

TOP

SCRIPTED: A JAVASCRIPT EDITOR FROM VMWARE

The first version of the Scripted code editor has been released this week on github: https://github.com/scripted-editor/scripted.

Although Scripted is a general purpose code editor, the initial focus is building a great JavaScript editing experience. Scripted itself is built entirely in JavaScript and HTML/CSS. It is a browser-based editor that runs locally on a developer’s machine with a Node.js instance being used to serve the editor code and perform the editor operations. The only pre-req for running Scripted is that you have a recent version of Node.js installed (we are testing with Node 0.8.11 right now). Scripted reuses the editor component from Eclipse Orion.

Ream More on SPRINGSOURCE BLOG

 

TOP

Missing indirectly referenced artifact javax.transaction:jta:jar:1.0.1B:compile

Λόγω της αλλαγής της αδειοδότησης το JTA δεν είναι διαθέσιμο στα κεντρικά αποθετήρια του maven. Οπότε αν έχουμε ένα dependency που το χρειάζεται όπως πχ το hibernate-annotations τότε πρέπει να το εγκαταστήσουμε με το χέρι.

Κατεβάζουμε αρχικά απο το http://download.java.net/maven/2/javax/transaction/jta/1.0.1B/ το jta-1.0.1B.jar και το βάζουμε σε μια διαδρομή στο δίσκο, έστω ότι είναι η /tmp  (c:\temp στα windows)

Μετά τρέχουμε το


mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=/tmp/jta-1.0.1B.jar

ή στα windows


mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=c:/temp/jta-1.0.1B.jar

Αν δούμε το μαγικό

 [INFO] ————————————————————————

[INFO] BUILD SUCCESSFUL

[INFO] ————————————————————————

Τότε είμαστε έτοιμοι!

TOP

Δημιουργία συμπιεσμένου ZIP αρχείου με Java

Αυτό το χρειάστηκα σήμερα το πρωί. Η φιλοσοφία είναι ότι έχουμε να διαχειριστούμε κάποια αρχεία σε ένα ή παραπάνω φακέλους στο δίσκο και πρέπει να δημιουργήσουμε ένα συμπιεσμένο zip αρχείο με τα αρχεία αυτά.

Η λύση είναι αρκετά απλή.

  1. Παίρνουμε τις διαδρομές των αρχείων και τις βάζουμε σε ένα collection (Array πχ)
  2. Ανοίγουμε ένα output stream στο δίσκο που του «δίνουμε zip ιδιότητες»
  3. Διαβάζουμε ένα-ένα τα αρχεία και τα βάζουμε στο  output stream
  4. Κλείνουμε το stream
TOP

Java 7 has released!

Και εγέννετω φώς! Μετά απο χρόνια έρευνας και προσπάθειας καθώς και μεγάλης βοήθειας απο την κοινότητα, η ORACLE (SUN) επιτέλους έθεσε σε την 28η Ιουλοίου 2011 κυκλοφορία την καινούργια έκδοση Java 7.

Αυτό το release περιέχει νέα language features (JSR 334), υποστήριξη για dynamic languages (JSR 292), ένα νέο multicore-ready API (JSR 166), νέο I/O APIs (JSR 203), και πολλά άλλα χαρακτηριστικά για τα οποία μπορείτε να διαβάσετε εδώ http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html

Τα release notes θα τα βρείτε εδώ http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-429209.html