IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

NullPointerException au lancement de l'application


Sujet :

Spring Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut NullPointerException au lancement de l'application
    Bonjour,
    je développe une application basée sur spring

    L'application démarre sans erreur sous eclipse. Je suis confronté à 2 erreurs

    1) quand je lance depuis mon navigateur la page de login (http://localhost:8080/TennisArc1600/login.jsp) (mon projet se nomme TennisArc1600), j'ai l'erreur suivante qui s'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    La page n'est pas redirigée correctement
     
    Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
     
        La cause de ce problème peut être la désactivation ou le refus des cookies.
    j'utilise spring security. Mon fichier xml est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:security="http://www.springframework.org/schema/security"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/security
            http://www.springframework.org/schema/security/spring-security.xsd
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
     
    	<security:http auto-config="true">
    		<security:intercept-url pattern="/**" access="hasRole('ROLE_MEMBRE')" />
    		<security:form-login login-page="/login.jsp"
    			default-target-url="/WEB-INF/pages/index.jsp"
    			authentication-failure-url="/login?error" username-parameter="username"
    			password-parameter="password" />
    		<security:logout logout-success-url="/login?logout" />
    		<!-- enable csrf protection -->
    		<security:csrf />
    		<security:custom-filter after="FORM_LOGIN_FILTER"
    			ref="authenticationFilter" />
    	</security:http>
     
     
    	<security:authentication-manager alias="authenticationManager">
    		<security:authentication-provider
    			ref="authenticationProvider" />
    	</security:authentication-manager>
     
    	<bean id="authenticationProvider"
    		class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    		<property name="userDetailsService" ref="userDetailsService" />
    		<property name="passwordEncoder" ref="encoder" />
    	</bean>
     
    	<bean id="encoder"
    		class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
     
    	<bean id="userDetailsService" class="spring.security.UserDetailsServiceImpl" />
     
    	<bean id="passwordChecker" class="spring.security.impl.PasswordCheckerImpl" />
     
    	<bean id="authenticationFilter"
    		class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
    		<property name="authenticationManager" ref="authenticationManager" />
    		<property name="filterProcessesUrl" value="/login" />
    		<property name="authenticationSuccessHandler" ref="authenticationSuccessHandler" />
    		<property name="authenticationFailureHandler" ref="authenticationFailureHandler" />
    	</bean>
     
    	<bean id="authenticationSuccessHandler" class="spring.security.AuthenticationSuccessHandlerImpl">
    		<property name="defaultTargetUrl" value="/WEB-INF/pages/index.jsp" />
    		<property name="userManagementService" ref="userManagementService" />
    	</bean>
    	<bean id="authenticationFailureHandler" class="spring.security.AuthenticationFailureHandlerImpl">
    		<property name="defaultFailureUrl" value="/login.jsp" />
    		<property name="userManagementService" ref="userManagementService" />
    	</bean>
     
    	<bean id="userManagementService" class="spring.security.UserDetailsServiceImpl">
     
    	</bean>
     
    </beans>
    l'arborexcence de mon projet est le suivant
    Nom : Capture d’écran 2015-06-14 à 17.43.22.png
Affichages : 440
Taille : 67,8 Ko

    2) deuxième erreur: quand je rentre l'adresse http://localhost:8080/TennisArc1600/login j'ai une null pointer exception à la ligne marquée en rouge : membreDao est null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package spring.security;
    
    .................
    
    public class UserDetailsServiceImpl implements UserDetailsService, MessageSourceAware {
    
    	................................
    
    	@Autowired
    	@Qualifier("membreDao")
    	private JpaDAO membreDao;
    
    	............................
    
    	public Membre getMembreByLogin(String login) {
    		final List<Membre> membres = this.membreDao.executeNamedQuery("findByLogin", "login", login);
    		Membre membre = null;
    		if (membres.size() == 1) {
    			membre = membres.get(0);
    		}
    		return membre;
    	}
    
    ...............................
    
    }
    voici la definition de membreDao dans mon fichier xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.0.xsd   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.0.xsd   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.0.xsd   http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.0.xsd   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.0.xsd">
     
     
    	<bean id="JpaDAOImpl" class="orm.impl.JpaDAOImpl" abstract="true"/>
     
     
    	<bean id="membreDao" parent="JpaDAOImpl">
    		<constructor-arg value="domain.Membre" />
    	</bean>
     
     
     
    </beans>
    et voici la classe JpaDAOImpl et JpaDAO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
     
    import orm.JpaDAO;
     
    @Repository
    @Transactional(readOnly = true)
    public class JpaDAOImpl< T extends Serializable > implements JpaDAO<T> {
     
    .....................
    	private Class< T > clazz;
     
    	@PersistenceContext
    	EntityManager entityManager;
     
    	public JpaDAOImpl(Class< T > clazz) {
    		this.clazz = clazz;
    	}
    ..........................
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    package orm;
     
    import java.io.Serializable;
    import java.util.List;
    import java.util.Map;
     
    public interface JpaDAO<T extends Serializable> {
     
    	public abstract T create(T entity);
     
    	public abstract void delete(T entity);
     
    	public abstract void deleteById(Integer entityId);
     
    	/**
             * @param namedQuery
             * @param params
             * @return
             */
    	public abstract List<T> executeNamedQuery(String namedQuery,
    			Map<String, Object> params);
     
    	public abstract List<T> executeNamedQuery(String namedQuery,
    			Map<String, Object> params, int maxResults);
     
    	/**
             * @param namedQuery
             * @param paramName
             * @param paramValue
             * @return
             */
    	public abstract List<T> executeNamedQuery(String namedQuery,
    			String paramName, Object paramValue);
     
    	/**
             * @param namedQuery
             * @param paramName
             * @param paramValue
             * @return
             */
    	public abstract List<T> executeNamedQuery(String namedQuery,
    			String paramName, Object paramValue, int maxResults);
     
    	/**
             * @param nativeQuery
             * @return
             */
    	public abstract List<T> executeNativeQuery(String nativeQuery);
     
    	/**
             * @param nativeQuery
             * @return
             */
    	public abstract int executeNativeUpdateQuery(String nativeQuery);
     
    	/**
             * @param jpqlQuery
             * @param params
             * @return
             */
    	public abstract int executeUpdateQuery(String jpqlQuery,
    			Map<String, Object> params);
     
    	public abstract List<T> findAll();
     
    	public abstract T findOne(Integer id);
     
    	public abstract T read(Integer entityId);
     
    	public abstract void save(T entity);
     
    	public abstract void setClazz(Class<T> clazzToSet);
     
    	public abstract void update(T entity);
     
    }
    j'utilise le fichier de configuration suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    package orm;
     
    import java.util.Properties;
     
    import javax.sql.DataSource;
     
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    import org.springframework.orm.jpa.JpaTransactionManager;
    import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
    import org.springframework.orm.jpa.vendor.Database;
    import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
    import org.springframework.transaction.PlatformTransactionManager;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
     
     
    @Configuration
    @ComponentScan("domain")
    @EnableTransactionManagement
    public class PersistenceJPAConfig{
     
    	@Value("${jdbc.dialect}")
    	private String dialect;
     
    	@Value("${jdbc.driverClassName}")
    	private String driverClassName;
     
    	@Value("${jdbc.hbm2ddl}")
    	private String hbm2ddl;
     
    	@Value("${jdbc.password}")
    	private String password;
     
    	@Value("${jdbc.url}")
    	private String url;
     
    	@Value("${jdbc.username}")
    	private String username;
     
    	Properties additionalProperties() {
    		final Properties properties = new Properties();
    		properties.setProperty("hibernate.hbm2ddl.auto", this.hbm2ddl);
    		properties.setProperty("hibernate.dialect", this.dialect);
    		return properties;
    	}
     
    	@Bean
    	public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(){
    		final LocalContainerEntityManagerFactoryBean factoryBean
    		= new LocalContainerEntityManagerFactoryBean();
    		factoryBean.setDataSource( restDataSource() );
    		factoryBean.setPackagesToScan( new String[ ] { "domain" } );
    		final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    		vendorAdapter.setDatabase(Database.MYSQL);
    		vendorAdapter.setShowSql(true);
    		vendorAdapter.setGenerateDdl(true);
    		factoryBean.setJpaVendorAdapter( vendorAdapter );
    		factoryBean.setJpaProperties( additionalProperties() );
     
    		return factoryBean;
    	}
     
    	@Bean
    	public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){
    		return new PersistenceExceptionTranslationPostProcessor();
    	}
     
    	@Bean
    	public DataSource restDataSource(){
    		final DriverManagerDataSource dataSource = new DriverManagerDataSource();
    		dataSource.setDriverClassName( this.driverClassName );
    		dataSource.setUrl( this.url );
    		dataSource.setUsername( this.username );
    		dataSource.setPassword( this.password );
    		return dataSource;
    	}
     
    	@Bean
    	public PlatformTransactionManager transactionManager(){
    		final JpaTransactionManager transactionManager = new JpaTransactionManager();
    		transactionManager.setEntityManagerFactory(
    				entityManagerFactoryBean().getObject() );
     
    		return transactionManager;
    	}
    }
    Merci d'avance pour vos suggestion

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    vérifiez que le package dans lequel la NPE se produit est bien connu de Spring
    (<context:component-scan … ou équivalent par annotations)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut
    Bonjour JeitEmgie et merci pour votre réponse,

    j'ai avancé et j'ai rajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <context:component-scan base-package="orm,orm.impl" />
    et j'ai modifié ma configuration de spring security

    du coup je n'ai plus de null pointer exception. En revanche, mon application démarre maintenant sans erreur sous Eclipse mais quand j'essaye d'ouvrir ma page de login (http://localhost:8080/TennisArc1600/login.jsp), j'ai le message

    Trop de redirections sont survenues en tentant d’ouvrir « http://localhost:8080/TennisArc1600/login.jsp ». Ceci peut se produire lorsque vous ouvrez une page qui est redirigée vers une autre page laquelle se redirige à son tour vers la page originale sous Safari

    et le message
    La page n'est pas redirigée correctement Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas. sous firefox

    pourtant je ne redirige pas de page. A mon avis cela vient du fait que j'utilise mal un custom filter pour l'authentification.
    Voici mon fichier xml de configuration spring security

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:security="http://www.springframework.org/schema/security"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
            http://www.springframework.org/schema/security
            http://www.springframework.org/schema/security/spring-security-4.0.xsd
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.1.xsd">
     
    	<security:http auto-config="true">
    		<security:intercept-url pattern="/**" access="hasRole('ROLE_MEMBRE')" />
    		<security:intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    		<security:intercept-url pattern="/" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <!-- 		<security:form-login login-page="/login.jsp" -->
    <!-- 			default-target-url="/WEB-INF/pages/index.jsp" -->
    <!-- 			authentication-failure-url="/login.jsp" username-parameter="username" -->
    <!-- 			password-parameter="password" /> -->
    		<security:logout logout-success-url="/login?logout" />
    		<!-- enable csrf protection -->
    		<security:csrf />
    		<security:custom-filter after="FORM_LOGIN_FILTER"
    			ref="authenticationFilter" />
    		<security:anonymous enabled="true" />
    	</security:http>
     
     
    	<security:authentication-manager alias="authenticationManager">
    		<security:authentication-provider
    			ref="authenticationProvider" />
    	</security:authentication-manager>
     
    	<bean id="authenticationProvider"
    		class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    		<property name="userDetailsService" ref="userDetailsService" />
    		<property name="passwordEncoder" ref="encoder" />
    	</bean>
     
    	<bean id="encoder"
    		class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
     
    	<bean id="userDetailsService" class="spring.security.UserDetailsServiceImpl" />
     
    	<bean id="passwordChecker" class="spring.security.impl.PasswordCheckerImpl" />
     
    	<bean id="authenticationFilter"
    		class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
    		<property name="authenticationManager" ref="authenticationManager" />
    		<property name="filterProcessesUrl" value="/login" />
    		<property name="authenticationSuccessHandler" ref="authenticationSuccessHandler" />
    		<property name="authenticationFailureHandler" ref="authenticationFailureHandler" />
    	</bean>
     
    	<bean id="authenticationSuccessHandler" class="spring.security.AuthenticationSuccessHandlerImpl">
    		<property name="defaultTargetUrl" value="/WEB-INF/pages/index.jsp" />
    		<property name="userManagementService" ref="userManagementService" />
    	</bean>
    	<bean id="authenticationFailureHandler" class="spring.security.AuthenticationFailureHandlerImpl">
    		<property name="defaultFailureUrl" value="/login.jsp" />
    		<property name="userManagementService" ref="userManagementService" />
    	</bean>
     
    	<bean id="userManagementService" class="spring.security.UserDetailsServiceImpl">
     
    	</bean>
     
     
    </beans>

  4. #4
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    Spring Security evalue les intercept-url dans l'ordre. Ta première ligne devrait être plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <security:intercept-url pattern="/login*" access="isAnonymous()" />
    Mes logiciels n’ont jamais de bug. Ils développent juste certaines fonctions aléatoires.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut
    Bonjour ruscov et merci pour ta réponse

    j'ai modifié la partie <security:http comme ceci et maintenant ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	<security:http auto-config="true">
     
    		<security:intercept-url pattern="/login.jsp" access="isAnonymous()" />
    		<security:intercept-url pattern="/" access="isAnonymous()" />
    		<security:logout logout-success-url="/login?logout" />
    		<!-- enable csrf protection -->
    		<security:csrf />
    		<security:custom-filter after="FORM_LOGIN_FILTER"
    			ref="authenticationFilter" />
    		<security:anonymous enabled="true" />
    	</security:http>

  6. #6
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    Le problème maintenant, c'est que tout le monde peut accéder à tout.
    Il faut qu'en dessous de login tu mettes ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <security:intercept-url pattern="/**" access="hasRole('ROLE_MEMBRE')" />
    Ensuite plus tard, si tu veux rajouter des sections de ton site web qui sont accessible en anonymous, tu les mettras au dessus de cette ligne vu que Spring Security évalue dans l'ordre.
    Mes logiciels n’ont jamais de bug. Ils développent juste certaines fonctions aléatoires.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut
    Merci ruscov pour tes conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancement automatique d'application
    Par atao29 dans le forum MFC
    Réponses: 2
    Dernier message: 18/10/2005, 14h03
  2. [Exécutable]lancement d'une application
    Par jesus144 dans le forum Général Java
    Réponses: 9
    Dernier message: 08/06/2005, 10h08
  3. [Plugin][MyEclipse]Lancement d'une application J2EE
    Par ujoodha dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2005, 15h48
  4. Détecter le lancement d'une application
    Par Neilos dans le forum Windows
    Réponses: 8
    Dernier message: 22/11/2004, 12h32
  5. Lancement d'une application en local (!)
    Par Fifoun dans le forum MFC
    Réponses: 5
    Dernier message: 12/06/2004, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo