It seems Amazon released a new version for DynamoDbLocal today (10/08/2022) with an empty jar file into thir specific repository. https://s3-us-west-2.amazonaws.com/dynamodb-local/release
If you use the recommended dependency from their documentation:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>DynamoDBLocal</artifactId>
<version>[1.12,2.0)</version>
</dependency>
... then your build will mysteriously fail from today, becasue maven will load the latest available version below 2.0.
Change your dependency to the latest working version:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>DynamoDBLocal</artifactId>
<version>1.18.0</version>
</dependency>
Yesterday I launched our first AWS Elasticache Redis instance, but haven't been able to use it yet via a JAVA API (Although the HTTP API seems quite straightforward to use)
I've tried first using the libraries available by including the following in the pom.xml file:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.86</version>
</dependency>
Then I realized I must just need:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-elasticache</artifactId>
<version>1.11.86</version>
</dependency>
But there's also available:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>elasticache-java-cluster-client</artifactId>
<version>1.1.1</version>
</dependency>
And I've found the Javadoc at:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticache/AmazonElastiCacheClient.html
But haven't able to really put/get data from the cache, as I haven't found any actual instructions on the libraries, could anyone please point me in the correct direction?
aws-java-sdk-elasticache is only for managing your Elasticache resources through the AWS API. Not for connecting and manipulating data inside the Elasticache server.
I think elasticache-java-cluster-client is only for Memcached clusters. Are you using Memcached or Redis?
If you are using Redis you should use a Java Redis client like Jedis.
I'm implementing a custom Mediator for wso2esb-4.7.0. Obviously as my classes will be running within the context of wso2esb, I expect them to utilise the same deps.
wso2esb has, for whatever curious reason, been deployed with custom builds of its dependencies. Eg. They expect you to point at their custom mvn repostiory and use artefacts suffixed with "-wso2vn" Eg. axis2-kernel/1.6.1-wso2v9
This has worked for most of the dependencies which get shared with the wso release, however wso2esb uses its own logging artefact with its own versions of sl4j and commons-logging:
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>logging</artifactId>
<version>4.1.0</version>
</dependency>
The problem is that this doesn't exist in their mvn repo, which contains the pom files but not the jar:
http://dist.wso2.org/maven2/org/wso2/carbon/logging/4.1.0/
I'm going to use the non-wso2 specific versions of those jars for now, but will need to resolve this for deployment.
Suggestions welcome.
AFAIK the above dependency is the aggregate module of the logging related dependencies used in WSO2 carbon products. Therefore it will have a pom file only.
Use the following dependency for your requirement.
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.logging</artifactId>
<version>4.1.0</version>
</dependency>
The maven repo link can be found here.
I'm trying to make a REST web service.
My project looks like :
The traceback is :
8 déc. 2011 18:31:36 org.apache.catalina.core.AprLifecycleListener init
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;C:\Program Files\MyEclipse\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_9.0.0.me201109141806\tomcat\bin
8 déc. 2011 18:31:36 org.apache.coyote.http11.Http11Protocol init
INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
8 déc. 2011 18:31:36 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 394 ms
8 déc. 2011 18:31:37 org.apache.catalina.core.StandardService start
INFO: Démarrage du service Catalina
8 déc. 2011 18:31:37 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.13
8 déc. 2011 18:31:37 org.apache.catalina.startup.HostConfig deployWAR
INFO: Déploiement de l'archive Test-0.0.1-SNAPSHOT.war de l'application web
8 déc. 2011 18:31:37 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Documents and Settings\Naya\Workspaces\MyEclipse 10\.metadata\.me_tcat\webapps\Test-0.0.1-SNAPSHOT\WEB-INF\lib\javax.servlet-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
8 déc. 2011 18:31:37 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Documents and Settings\Naya\Workspaces\MyEclipse 10\.metadata\.me_tcat\webapps\Test-0.0.1-SNAPSHOT\WEB-INF\lib\servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
8 déc. 2011 18:31:38 org.apache.catalina.core.ApplicationContext log
INFO: La servlet Test JAX-RS REST Servlet est marqué comme indisponible
8 déc. 2011 18:31:38 org.apache.catalina.core.ApplicationContext log
GRAVE: Error loading WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader#19e8329
com.sun.jersey.spi.container.servlet.ServletContainer
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
My web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<servlet>
<display-name>Test JAX-RS REST Servlet</display-name>
<servlet-name>Test JAX-RS REST Servlet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test JAX-RS REST Servlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Can anyone help me ?
Solution:
Only add the dependency in pom.xml:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.13</version>
</dependency>
Now your application will have the class com.sun.jersey.spi.container.servlet.ServletContainer
ps: Remember to check if the libraries are being sent to the tomcat deploy.
To check:
Right-click on your project -> Properties -> Deployment Assembler
and make sure the Source tab contains Maven Dependecies.
Otherwise:
Click on button Add -> Java Build Path -> Maven Dependecies -> Finish.
Ready whenever you run the application all the libs will be imported in the deploy.
ps: Where the Maven project is updated, you must remake these steps.
I have encountered the same issue. I was using Version 1.12.
I could not find the class com.sun.jersey.spi.container.servlet.ServletContainer in the "jersey-server-1.12.jar" or "jersey-core-1.12.jar" as suggested in some other forums.
You can easily check this in Eclipse, when you add it to the Build Path and notice that you do not have that class in the above mentioned jar files.
I searched around and found the following:
It looks like the class com.sun.jersey.spi.container.servlet.ServletContainer is in a different jar file ("jersey-servlet-1.12.jar").
I did not find any documentation about this. However having this file in my WEB-INF/lib resolved this issue.
Hope this helps.
If you're working with Maven then the possible issue might be that your jars don't get deployed to your Tomcat.
So, you have your Maven Dependencies in the Java Build Path (Project > Properties > Build path), but when running the project on your Tomcat from Eclipse Maven Dependencies don't get deployed to TOmcat. To solve this you have to: right click > properties and select "Deployment Assembly". And add Java Build Path Entries. This way you're telling the WTP plugin (the one running Tomcat within Eclipse) that it should also copy the Maven's jars
In Jersey 2.0, the servlet container implementation changed. You need to use org.glassfish.jersey.servlet.ServletContainer instead of the old com.sun.jersey.spi.container.servlet.ServletContainer
The class is in
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.0-m11</version>
</dependency>
You can create a skeletal project using:
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-webapp -DarchetypeGroupId=org.glassfish.jersey.archetypes -
DinteractiveMode=false -DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example -DarchetypeVersion=2.0-m11
You need to put the Jersey JAR in your WEB-INF/lib directory, whether you are running Tomcat separately or running with Eclipse.
This worked for me.
The class loader can't find the class com.sun.jersey.spi.container.servlet.ServletContainer.
You need to put the Jersey JAR in your WEB-INF/lib directory.
This might help:
http://www.suryasuravarapu.com/2009/02/rest-jersey-configuration-on-tomcat.html
Now I've looked at the image you posted and I see your problem: You're using Eclipse and Maven, but you don't really understand what they're doing.
You have to end up with a WAR file in the Tomcat /webapps directory that has all the 3rd party JARs you need in the WEB-INF/lib directory. If you don't, Tomcat won't find them.
I'd recommend simplifying your problem. Create a WAR file by hand; leave Eclipse and Maven out of it. Once you've got it working, add in the things that are supposed to be making your life easier. You'll understand what they need to do, because you'll have already made it work without them.
luigi7up's post above worked for me. I'm using tomcat 7.0.37, maven 3.1.1, and jersey 1.17.1. I did the right click -> properties -> Deployment Assembly -> Click Add -> Java Build Path Entries -> selected Maven Dependencies. I then clicked ok.
When I first tried this, I noticed that I no longer received the "java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer" error, but I then noticed that I was getting other 'class not found' messages (unfortunately, I didn't document what messages those were). I was using the following jersey dependency:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.17.1</version>
</dependency>
I took that out and put in the following dependencies:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17.1</version>
</dependency>
Things began to work after that.
Hope this helps someone!
Anjaneya Reddy, as you've pointed out, the class isn't even in the JAR it's supposed to be in. What baffles me, where is it and where in the documentation does it touch on this?!?
With everything being so Maven friendly now, it's difficult to bang out a simple tutorial without needing to depend on it.
I added it to the WEB-INF/lib directory but it did not work until I refreshed the lib folder from Eclipse and then it started working.
You are apparently required missing libraries from your deployment classpath.
Copy the following jars in the WEB-INF/lib directory
asm-3.1.jar
jackson-core-asl-1.9.2.jar
jackson-jaxrs-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
jackson-xc-1.9.2.jar
jersey-client-1.15.jar
jersey-core-1.15.jar
jersey-json-1.15.jar
jersey-server-1.15.jar
jersey-servlet-1.15.jar
jettison-1.1.jar
jsr311-api-1.1.1.jar
from: http://jersey.java.net/nonav/documentation/latest/chapter_deps.html#d4e1687
Deploying an application on a servlet container requires a deployment dependency with that container.
See the Java documentation here on how to configure the servlet container.
Using servlet: com.sun.jersey.spi.container.servlet.ServletContainer requires a dependency on the jersey-servlet module.
Maven developers using servlet: com.sun.jersey.server.impl.container.servlet.ServletAdaptor in a non-EE 5 servlet require a dependency on the persistence-api module in addition.
Non-Maven developers require: persistence-api.jar
The following dependency helps:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
See: http://www.mkyong.com/webservices/jax-rs/classnotfoundexception-com-sun-jersey-spi-container-servlet-servletcontainer/
I get this on a lot of Maven dependencies, though current source of pain is Spring.
I'll set a Spring version and include it like so:
<spring-version>3.0.0.RELEASE</spring-version>
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
Which works as expected.
I am however having problems setting my dependency on spring-ws-core for web services. The latest I can find in any repo is 2.0.0-M1.
http://mvnrepository.com/artifact/org.springframework.ws/spring-ws-core
Any clues on what I need to include in my maven POM to get Spring 3 web services to work :)
Well, 2.0.0-M1 is simply the latest version of spring-ws-core.
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>2.0.0-M1</version>
</dependency>
And actually, the current stable version is 1.5.9.
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>1.5.9</version>
</dependency>
Okay,
don't know too much about maven. But spring source have a repository which has maven access at:-
http://www.springsource.com/repository/app/bundle/version/detail?name=org.springframework.web&version=3.0.2.RELEASE
Looks like the maven stuff is
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
But, again, i use ivy not maven!
Edit:
Oh and instructions for adding maven repository stuff are in the faq at http://www.springsource.com/repository/app/faq#q8.