2017-01-31 1 views
1

Ich habe eine benutzerdefinierte Java-Annotation in meinem WebProject für eine meiner Modellklassen hinzugefügt. Jetzt ist das Problem, wenn ich die Klasse im verwiesenen Modul jar meines Projektkriegs behalte, bin ich nicht in der Lage, die kundenspezifischen Anmerkungen der Feldebene zu holen, die in der Modellklasse hinzugefügt werden. Es funktioniert gut, wenn die Klasse als Teil des gleichen Projekts Krieg gehalten wird, von wo ich alle Anmerkungen abholen. Ich habe sogar die Aufbewahrungsrichtlinie als "RUNTIME" markiert, aber es hat nicht geholfen. Irgendeine Idee, was hier falsch ist.kann keine benutzerdefinierten Annotationen abrufen, wenn die Klasse von jar geladen wird

public class SalesUploadData { 

    @ExcelColumn(position = 0) 
    private Integer countryCode; 
    @ExcelColumn(position = 1) 
    private Integer currencyCode; 
    @ExcelColumn(position = 2) 
    private String serialNumber; 

    public Integer getCountryCode() { 
     return countryCode; 
    } 

    public void setCountryCode(Integer countryCode) { 
     this.countryCode = countryCode; 
    } 
} 

@Documented 
@Retention(value = RetentionPolicy.RUNTIME) 
@Target(value = ElementType.FIELD) 
public @interface ExcelColumn { 
    String name() default ""; 
    int position(); 
    String dateFormat() default ""; 
    boolean isMandatory() default false; 
} 

Ich stelle zwei WARs auf dem Server bereit, wie in der folgenden Abbildung dargestellt.

Project Structure

+0

Sie sollten die Struktur Ihrer Module angeben. –

+0

Wenn Sie versuchen, eine Klasse zu verwenden, die Teil eines WAR-Moduls ist, und Sie Maven verwenden, sollten Sie das maven-war-plugin verwenden, um ein zusätzliches Artefakt zu erstellen, das seine Klassen enthält: http://maven.apache.org/ plugins/maven-war-plugin/war-mojo.html # attachClasses –

+0

@ luc14n0 Ja, ich benutze maven in meinem Projekt und das Plugin, das du erwähnt hast, ist bereits in pom.xml, um es als WAR zu packen. Ich habe auch meine Post mit meinen Projektstrukturdetails bearbeitet, die Sie benötigen. Danke –

Antwort

0

Wie in den Kommentaren erwähnt wurde, war die Lösung <attachClasses>true</attachClasses> auf die Maven-Krieg-Plugin, um fügen Sie eine zusätzliche Artefakt zu erzeugen, nur die Klassen des Web-Moduls in einem Modul-classes.jar enthält Archiv als Abhängigkeit in anderen Modulen zu verwenden.

Verwandte Themen