2010-08-05 12 views
3

Ceci est mon code (pris de réponse à SO question posté):Que signifie ce message checkstyle?

package my; 
import java.net.MalformedURLException; 
import java.net.URL; 
import javax.faces.component.UIComponent; 
import javax.faces.context.FacesContext; 
import javax.faces.convert.Converter; 
import javax.faces.convert.ConverterException; 
import javax.faces.convert.FacesConverter; 
@FacesConverter(forClass = URL.class) 
public class UrlConverter implements Converter { 
    @Override 
    public final Object getAsObject(
    final FacesContext context, 
    final UIComponent component, 
    final String value) throws ConverterException { 
    try { 
     return new URL(value); 
    } catch (MalformedURLException ex) { 
     throw new ConverterException(
      String.format("Cannot convert %s to URL", value), 
      ex 
     ); 
    } 
    } 
    @Override 
    public final String getAsString(
    final FacesContext context, 
    final UIComponent component, 
    final Object value) { 
    return ((URL)value).toString(); 
    } 
} 

Voici ce que dit maven-checkstyle-plugin:

UrlConverter.java:0: Got an exception - java.lang.ClassFormatError: 
Absent Code attribute in method that is not native or abstract 
in class file javax/faces/convert/ConverterException 

Qu'est-ce que cela signifie et comment le résoudre?

+5

Il semble que checkstyle ait rencontré un problème lors de l'analyse du fichier de classe pour ConverterException. Donc, alors que le message dit UrlConverter.java, le problème réside vraiment avec ConverterException.java –

+0

Cela ressemble à ça, mais que puis-je faire maintenant? – yegor256

Répondre

0

Le problème est que checkstyle ne peut pas trouver javax.faces.convert.ConverterException classe classpath. L'ajout de cette dépendance à pom.xml a résolu le problème:

<dependency> 
    <groupId>javax.faces</groupId> 
    <artifactId>jsf-api</artifactId> 
    <version>1.2</version> 
</dependency> 
0

Vous utilisez probablement le javax: JavaEE-api: 6.0 dépendance qui a l'attribut de code supprimé. Vous pouvez utiliser org.jboss.spec: jboss-javaee-6.0 tant que vous n'utilisez pas features-maven-plugin de Karaf.