Target Unreachable bei @Named CDI

Mr.y

Aktives Mitglied
Hallo zusammen,

irgendwo habe ich zwar ein ähnliches Topic gesehen, wo auch die Lösung präsentiert wird.
Diese habe ich ausprobiert aber es hilft nicht :(

Und zwar arbeite ich mit CDI und benutze @Named("store")

Die Querverweise anhand "store.metheode" funktionieren.
Die Lösung soll für dieses Problem sein, dass man die beans.xml, die auch leer sein kann in den
WEB-INF Ordner packt.

Der Fehler wird schon beim setzen von Variablen geworfen.

Ich hatte bereits in der beans.xml folgenden Inhalt.

<?xml version="1.0" encoding="UTF-8"?>

oder einfach mal gar nix. Leider bringt das nichts :(

Meine Pom.xml sieht so aus:

[XML]<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.blr.store</groupId>
<artifactId>store</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>store Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>

<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<!-- Tomcat 6 need this -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>


<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
</dependency>


<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>

</dependencies>

<build>
<finalName>JavaServerFaces</finalName>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>

</build>


<repositories>
<repository>
<id>appfuse-releases</id>
<name>AppFuse Releases</name>
<url>https://oss.sonatype.org/content/repositories/appfuse-releases</url>
</repository>
</repositories>


</project>
[/XML]

Meine web.xml sieht so aus:

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Archetype Created Web Application</display-name>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>content.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<description>Development or Production</description>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
</web-app>[/XML]

An sich gibt es keine Fehler, wo Maven oder sonst wer mich drauf aufmerksam macht.

Vielen Dank für die Tipps.
 

Mr.y

Aktives Mitglied
hi :) ja ich benutze Tomcat,
wobei ich jetzt so viel mit der pom gemacht habe, dass ich da nen artifact-error habe

meine Pom.xml aktuell:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.blr.store</groupId>
<artifactId>store</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>store Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0</version>
</dependency>

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${com.sun.faces.version}</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${com.sun.faces.version}</version>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>1.0-CR1</version>
</dependency>


<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>

<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<!-- Tomcat 6 need this -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>


<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
</dependency>


<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>



</dependencies>

<build>
<finalName>JavaServerFaces</finalName>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>

</build>


<repositories>
<repository>
<id>appfuse-releases</id>
<name>AppFuse Releases</name>
<url>https://oss.sonatype.org/content/repositories/appfuse-releases</url>
</repository>
</repositories>


</project>

und wenn ich "install" ausführe hab ich:

C:\Users\Mr\workspace\Store\store>mvn install -e
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] 'dependencies.dependency.version' for com.sun.faces:jsf-api:jar must be a valid version but is '${com.sun.faces.version}'. @ line 26, column 13
[ERROR] 'dependencies.dependency.version' for com.sun.faces:jsf-impl:jar must be a valid version but is '${com.sun.faces.version}'. @ line 31, column 13

at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:363)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:636)
at org.apache.maven.DefaultMaven.getProjectsForMavenReactor(DefaultMaven.java:585)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:234)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR]
[ERROR] The project de.blr.store:store:1.0-SNAPSHOT (C:\Users\Mr\workspace\Store\store\pom.xml) has 2 errors
[ERROR] 'dependencies.dependency.version' for com.sun.faces:jsf-api:jar must be a valid version but is '${com.sun.faces.version}'. @ line 26, column 13
[ERROR] 'dependencies.dependency.version' for com.sun.faces:jsf-impl:jar must be a valid version but is '${com.sun.faces.version}'. @ line 31, column 13
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
C:\Users\Mr\workspace\Store\store>

Hat jemand eine valide pom, mit jsf 2.0, cdi, entity-manager???

Danke im Voraus
 
Zuletzt bearbeitet:

tandraschko

Mitglied
Du hast jetzt zwar die CDI API eingebunden aber keine Impl. Das kann so eh nicht gehen.
Du musst noch OpenWebBeans oder Weld einbinden.
Das einfachste wäre jedoch einen JavaEE server zu benutzen - TomEE oder Glassfish oder so.

Dein Fehler ist übrigends klar. Was soll das sein: ${com.sun.faces.version}?
Du brauchst eine richtige Version oder du definierst die Version als Property via:

<properties>
<com.sun.faces.version>2.1.24</com.sun.faces.version>
</properties>

Ich werde dir leider kein Beispiel zusammen stellen, ich denke mit ein bisschen Fleiß bekommt man das leicht hin ;)
 

soccer

Neues Mitglied
hallo liebe leute!
könnte mir bitte jemand weiterhelfen? ich programmiere eine zapfenrechner und komme nicht weiter. bitte um vervollständigung.
danke im vorraus.

public class turm {


private static double anzahlStart;
private static int anzahl;


public static void main(String[] args) {

anzahlStart = Double.parseDouble(args[0]);
anzahl = Integer.parseInt(args[1]);

berechnung(anzahlStart, anzahl);


}


private static void berechnung(double anzahlStart2, int anzahl2)
{
double anzahlAktuell = anzahlStart;
for(int i = 2; i <= anzahlAktuell; i++)
{
double anzahlAlt = anzahlAktuell;
anzahlAktuell *= 1;
System.out.printf("%f * %d = %f %n ", anzahlAlt, i, anzahlAktuell);
}
for(int j = 2; j <= anzahlAktuell; j++)
{
double anzahlAlt = anzahlAktuell;
anzahlAktuell /= 1;
System.out.printf("%f / %d = %f %n", anzahlAlt, j, anzahlAktuell);
}

if(anzahlStart != anzahlAktuell)
{
System.out.printf("%f %d", anzahlStart, anzahlAktuell);
}

}

}
 

Mr.y

Aktives Mitglied
@An den Vorposter....
Bitte eigenen Thread eröffnen.

Zu dem eigentlichen Thema:

Ich habe nun meine pom.xml schlanker gemacht.
Und ich habe den Glassfish 3.0 installiert und in die Eclipse Juno intergriert.

Nun fehlen mir natürlich die ganzen Persistence-artifacts und javax.* Sachen für CDI.

meine pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.blr.store</groupId>
<artifactId>store</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>store Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>

<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<!-- Tomcat 6 need this -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>

</dependencies>

<build>
<finalName>JavaServerFaces</finalName>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

Fehlermeldungen:
Description Resource Path Location Type
GenerationType cannot be resolved to a variable Customer.java /store/src/main/java/de/blr/model line 11 Java Problem
Column cannot be resolved to a type Customer.java /store/src/main/java/de/blr/model line 13 Java Problem
Column cannot be resolved to a type Customer.java /store/src/main/java/de/blr/model line 15 Java Problem
Column cannot be resolved to a type Customer.java /store/src/main/java/de/blr/model line 17 Java Problem
Entity cannot be resolved to a type Customer.java /store/src/main/java/de/blr/model line 5 Java Problem
Id cannot be resolved to a type Customer.java /store/src/main/java/de/blr/model line 10 Java Problem
GeneratedValue cannot be resolved to a type Customer.java /store/src/main/java/de/blr/model line 11 Java Problem
The attribute strategy is undefined for the annotation type GeneratedValue Customer.java /store/src/main/java/de/blr/model line 11 Java Problem
The import javax.persistence cannot be resolved Customer.java /store/src/main/java/de/blr/model line 3 Java Problem
Column cannot be resolved to a type Article.java /store/src/main/java/de/blr/model line 14 Java Problem
Column cannot be resolved to a type Article.java /store/src/main/java/de/blr/model line 16 Java Problem
The attribute strategy is undefined for the annotation type GeneratedValue Article.java /store/src/main/java/de/blr/model line 12 Java Problem
GenerationType cannot be resolved to a variable Article.java /store/src/main/java/de/blr/model line 12 Java Problem
Id cannot be resolved to a type Article.java /store/src/main/java/de/blr/model line 11 Java Problem
GeneratedValue cannot be resolved to a type Article.java /store/src/main/java/de/blr/model line 12 Java Problem
The import javax.persistence cannot be resolved Article.java /store/src/main/java/de/blr/model line 3 Java Problem
Entity cannot be resolved to a type Article.java /store/src/main/java/de/blr/model line 6 Java Problem
EntityManager cannot be resolved to a type StoreService.java /store/src/main/java/de/blr/business line 37 Java Problem
EJB cannot be resolved to a type ServicePM.java /store/src/main/java/de/blr/presentation line 34 Java Problem
EntityManager cannot be resolved to a type StoreService.java /store/src/main/java/de/blr/business line 32 Java Problem
SessionScoped cannot be resolved to a type ServicePM.java /store/src/main/java/de/blr/presentation line 30 Java Problem
The attribute value is undefined for the annotation type Named ServicePM.java /store/src/main/java/de/blr/presentation line 29 Java Problem
Named cannot be resolved to a type ServicePM.java /store/src/main/java/de/blr/presentation line 29 Java Problem
The import javax.persistence cannot be resolved StoreService.java /store/src/main/java/de/blr/business line 5 Java Problem
The import javax.enterprise cannot be resolved ServicePM.java /store/src/main/java/de/blr/presentation line 7 Java Problem
The import javax.ejb cannot be resolved StoreService.java /store/src/main/java/de/blr/business line 6 Java Problem
The import javax.persistence cannot be resolved StoreService.java /store/src/main/java/de/blr/business line 7 Java Problem
The import javax.ejb cannot be resolved ServicePM.java /store/src/main/java/de/blr/presentation line 9 Java Problem
The import javax.persistence cannot be resolved StoreService.java /store/src/main/java/de/blr/business line 8 Java Problem
The import javax.inject cannot be resolved ServicePM.java /store/src/main/java/de/blr/presentation line 10 Java Problem
Stateless cannot be resolved to a type StoreService.java /store/src/main/java/de/blr/business line 15 Java Problem
PersistenceContext cannot be resolved to a type StoreService.java /store/src/main/java/de/blr/business line 19 Java Problem
EntityManager cannot be resolved to a type StoreService.java /store/src/main/java/de/blr/business line 20 Java Problem
EntityManager cannot be resolved to a type StoreService.java /store/src/main/java/de/blr/business line 24 Java Problem


Was muss ich noch in die pom.xml eintragen, damit das ganze auf dem Glashfisch deployen lässt??
Danke im Voraus
 

tandraschko

Mitglied
Installier doch gleich 4.0 anstatt so nen alten zu installieren.
Wenn du Glassfish benutzt, kannst du ALLE dependencies raushauen und die JavaEE API hinzufügen:

[XML]
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
[/XML]
 
Zuletzt bearbeitet:

Mr.y

Aktives Mitglied
vielen dank, hab jetzt alles so gemacht und die klassen werden auch kompiliert.
Leider bin ich beim ähnlichen Problem angelangt:

Exception attempting to inject Remote ejb-ref name=de.blr.presentation.ServicePM/storeService,Remote 3.x interface =de.blr.business.StoreService,ejb-link=null,lookup=null,mappedName=,jndi-name=de.blr.business.StoreService,refType=Session into class de.blr.presentation.ServicePM

Soweit ich das verstehe, funktioniert die Injection des Objekts von de.blr.business.StoreService
in die nächst höhere (View) Schicht:
de.blr.presentation.ServicePM

weil:
Exception attempting to inject Remote ejb-ref name=de.blr.presentation.ServicePM/storeService,Remote 3.x interface

Er braucht wohl ejb-link oder lookup oder mappedName oder jndi-name....
falls ja....wie definiere ich das???

So habe ich das in der View impelementiert:

Code:
@Named
@SessionScoped

public class ServicePM implements Serializable {

	@EJB
	private StoreService storeService;

Danke für jeden Tipp.
 

Ähnliche Java Themen

Neue Themen


Oben