Przesiadka z Intellij do Eclipse = problemy z JRE

0

Potrzebuję pomocy w konfiguracji projektu. Prosta RESTowa apka.

Build path specifies execution environment JavaSE-1.8. There are no JREs installed in the workspace that are strictly compatible with this environment. 

Mam Javę SE jaki RE 9.

 java version "9.0.1"
 Java(TM) SE Runtime Environment (build 9.0.1+11)
 Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
 

Wszystko mam tak jak autor tutoriala. Trochę musiałem się namęczyć z dodaniem pewnym dependecies w pom.xml bo brakowało. W screenie warning z błędu.

Odpalenie serwera wywala wyjątki

javax.servlet.ServletException: Servlet.init() for servlet [Jersey Web App] threw exception
java.lang.IllegalArgumentException
0

nie miałes wcześniej zainstalowanej javy 8?

0

A jak masz skonfigurowany maven-compiler-plugin w pom.xml?

0
kiyo napisał(a):

A jak masz skonfigurowany maven-compiler-plugin w pom.xml?

<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
0

Możesz spróbować jeszcze pozmieniać wersję Javy na 8, może to coś pomoże.

0

Niestey zmiana na 8 nic nie dała. Robię już 5 podejście. Ściągam JARy których brakuje w Eclipse żeby odpalić projekt. Kod wygląda tak

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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>KamilNoc</groupId>
	<artifactId>KamilNoc</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.0.0</version>
				<configuration>
					<warSourceDirectory>WebContent</warSourceDirectory>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server -->
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-server</artifactId>
			<version>1.19.4</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core -->
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-core</artifactId>
			<version>1.19.4</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle -->
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-bundle</artifactId>
			<version>1.19.4</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet -->
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-servlet</artifactId>
			<version>1.19.4</version>
		</dependency>





	</dependencies>


</project>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>KamilNoc</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
		  <servlet-name>Jersey Web Application</servlet-name>
		  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  
  
  
  
  </servlet>
  
  <servlet-mapping>
  <servlet-name> Jersey Web Application</servlet-name>
  
  <url-pattern>/webapi/*</url-pattern>
  
  </servlet-mapping>
   
      
</web-app>

Users

package pl.kamil;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class User {

	private int id;
	private String name;
	private String password;
	private String email;

	public User() {
		super();
	}

	public User(int id, String name, String password, String email) {
		super();
		this.id = id;
		this.name = name;
		this.password = password;
		this.email = email;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
}

UserController

package pl.kamil;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("users")
public class UserController {

	@Path("/all")
	@GET
	@Produces(MediaType.APPLICATION_JSON)
	public List<User> getUsers() {
		return UserDAO.getUsers();
	}

}

UserDAO

package pl.kamil;

import java.util.ArrayList;
import java.util.List;

public class UserDAO {

	public static List<User> getUsers() {
		List<User> users = new ArrayList<>();

		users.add(new User(1, "Ensei", "Tankado", "[email protected]"));

		return users;
	}

}

Serwer startuje i jak idę do ścieżki webapi/users/all to wyskakują wyjątki

javax.servlet.ServletException: Servlet.init() for servlet [Jersey Web Application] threw exception
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)


Root Cause
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
	com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
	com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359)
	com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
	com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
	com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
	com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
	com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
	com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
	com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509)
	com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339)
	com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
	com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)
	com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394)
	com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577)
	javax.servlet.GenericServlet.init(GenericServlet.java:158)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)


0

wrzuc kod na gita, szybciej sobie sklonuje do siebie i zobacze co nie gra

0

Nie znam się wybitnie na Jersey ale patrząc na: https://stackoverflow.com/questions/4412147/the-resourceconfig-instance-does-not-contain-any-root-resource-classes wynika, że brakuje Ci:

<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>your.package.name</param-value>
</init-param>
0
DisQ napisał(a):

Nie znam się wybitnie na Jersey ale patrząc na: https://stackoverflow.com/questions/4412147/the-resourceconfig-instance-does-not-contain-any-root-resource-classes wynika, że brakuje Ci:

<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>your.package.name</param-value>
</init-param>

Już dodałem po wrzuceniu tutaj logów. GitHub: https://github.com/enseitankad0/REST

0

Trzeba dokładnie przepisywać, bo potem się traci czas - swój i innych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1