Category Archives: Java

Java Servlet / JSP 301 and 302 Redirect Examples

Permanent 301 Redirect

response.setStatus(301);
response.setHeader( "Location", "http://www.example.com/" );
response.setHeader( "Connection", "close" );

Temporary 302 Redirect

response.sendRedirect("/");

Fonte: Robert J Miller

Fletto i muscoli e sono nel vuoto.

[JSF] Rich:Calendar popup, errore z-index su i-explore

Per correggere il problema è possibile caricare il seguente doc-type

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

cfr. issues.jboss.org

Fletto i muscoli e sono nel vuoto.

Dynamic list binding in Spring MVC

http://mattfleming.com/node/134

AxisFault: No support for attachments

Se durante una chiamata ad un webservice ricevete il seguente errore:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.RuntimeException: No support for attachments
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.lang.RuntimeException: No support for attachments

Probabilmente avete dimenticato di inserire mail.jar sul vostro client.

Fletto i muscoli e sono nel vuoto.

Usare Quartz con Spring

Ipotiziamo ad avere il seguente Job

1
2
3
4
5
6
7
8
9
10
package sample;
 
public class ExampleJob {
 
  // properties and collaborators
 
  public void doIt() {
    // do the actual work
  }
}

Di cui vogliamo eseguire il metodo doIt, ogni tot secondi.
Basta configurare il nostro xml di spring nel seguente modo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   <!-- definiamo il nostro bean -->
  <bean id="myJob" class="sample.ExampleJob" />
 
  <!-- dichiariamo spring che vogliamo far eseguire allo scheduler il metodo doIt di myJob -->
  <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <property name="targetObject" ref="myJob"/>
      <property name="targetMethod" value="doIt"/>
  </bean>
 
  <!-- definiamo il trigger che dichiara a spring ogni quanto vogliamo eseguire il nostro metodo -->
  <bean id="myTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
      <!-- see the example of method invoking job above -->
      <property name="jobDetail" ref="myJobDetail"/>
      <!-- 10 seconds -->
        <property name="startDelay" value="10000"/>
	<!-- repeat every 15 seconds -->
        <property name="repeatInterval" value="15000"/>
    </bean>
 
   <!-- dichiariamo a spring il trigger che abbiamo appena definito -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="myTrigger"/>
            </list>
            </property>
            <property name="applicationContextSchedulerContextKey">
                <value>applicationContext</value>
        </property>
    </bean>

Fletto i muscoli e sono nel vuoto.

Writing a Dynamic WebService Client with BEA Weblogic

Ecco come creare un client websevice dinamico con bea weblogic.

System.setProperty("javax.xml.soap.MessageFactory","weblogic.webservice.core.soap.MessageFactoryImpl");
System.setProperty( "javax.xml.rpc.ServiceFactory","weblogic.webservice.core.rpc.ServiceFactoryImpl");
ServiceFactory serviceFactory = ServiceFactory.newInstance();
 
URL wsdlURL = new URL("http://localhost:7001/Services/Hello/Hello.jws?WSDL");          
String targetNameSpace = "http://www.openuri.org/";          
QName serviceName = new QName(targetNameSpace, "Hello");
QName portName = new QName(targetNameSpace, "HelloSoap");
QName operationName = new QName("sayHello");
 
Service service = serviceFactory.createService(wsdlURL, serviceName);
Call call = service.createCall(portName, operationName);
String message = (String) call.invoke(new Object[] {"World"});

Fonte : CodeRanch

Fonte : Oracle

Fletto i muscoli e sono nel vuoto.

Rilasciato Notepad++ 5.0

Rilasciata da pochi giorni, la nuova versione 5.0 introduce numerose novità:

* Performance migliorate, soprattutto alla chiusura dell’applicativo.
* Suggerimenti per i parametri delle funzioni (function parameters calltip hint). In coppia con l’auto-completamento rappresenta una funzionalità fondamentale di ogni IDE. L’implementazione è sotto forma di estensione ed utilizza il formato xml.
* Evidenziazione dei tag corrispondenti (tags match highlight), utile per lo sviluppo di pagine web.
* Menù contestuale migliorato. Tutti i comandi forniti dai plugin possono ora essere aggiunti al menù contestuale tramite il file contextMenu.xml.

I binari per Windows sono disponibili al download sia come semplici file .zip sia con un installer vero e proprio.

Fonte: ossblog

Fletto i muscoli e sono nel vuoto.

HTTPS su Tomcat

Per abilitare https è necessario un certificato. Su JavaStuff trovate un semplice tutorial su come crearne uno usando keytool delle j2sdk (es.: keytool -genkey -alias tomcat -keyalg RSA).

Fletto i muscoli e sono nel vuoto.

Ordinare un HashMap

E’ possibile ordine una hashmap in java utilizzando il seguente pezzo di codice:

Map yourMap= new HashMap();
// put some tuples in yourMap ...
Map sortedMap = new TreeMap(yourMap);

Fonte: Sun Java Forum

Fletto i muscoli e sono nel vuoto.

[Jboss MySQLValidConnectionChecker] Unexpected error in ping

Mi capitato di dover fare il deploy di un applicazione funzionante da tomcat a jboss.

Una volta configurato l’ambiente, l’applicazione parte, ma sembra molto lenta ed il log è pieno di eccezioni come la seguente:

[org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker] Unexpected error in ping

Girando un poi su google, ho letto un po’ di forum a cui si accennava all’errore. Si parlava di problema dovuto ad un bug di jconnector di mysql. Quindi ho aggiornato il driver passando dalla 5.0.5 alla 5.1.5. Risultato: l’applicazione va meglio e non ho più l’eccezione sopracitata.

Fletto i muscoli e sono nel vuoto.