Reputation: 1378
Firstly: I am not sure if it is a proper place for such question so please move it if you decide that there's more fitting space for it.
I have some GAE based project that I need to import to Eclipse. I downloaded fresh version of Eclipse EE (Kepler) and installed App Engine Plugin. Then I created a new project from sources and tried to configure it... This is where problem starts.
When I try to build project I get 3 errors:
The App Engine SDK '\incap-ii\build\web\WEB-INF\lib\appengine-api-1.0-sdk-1.8.0.jar' on the project's build path is not valid (SDK directory 'D:\incap-ii\build\web\WEB-INF\lib\appengine-api-1.0-sdk-1.8.0.jar' does not exist) incap-ii Unknown Google App Engine Problem
Project 'incap-ii' is missing required library: 'war/WEB-INF/lib/jsr107cache-1.1.jar' incap-ii Build path Build Path Problem
The project cannot be built until build path errors are resolved incap-ii Unknown Java Problem
First error says that some jar file couldn't be found but the path displayed is strange. Actually it's missing a part directing to the workspace (D:\workspaces\eclipse GAE\
) - rest, starting from incap-ii is fine. I tried to configure Build Path or change SDK path:
As you can see I have 2 SDK in configuration. However, I cannot change the one used in this project: I pick the appengine-java-1.8.5 - 1.8.5 from the list, click ok, dialog window closes but error still exists and once I open the dialog again I see that the change was not saved (still uses the wrong one).
Is there some specific configuration somewhere that I should change??
[EDIT] Some more explanation/screes (below). As you can seen at screen no.1 I (preferences\google\appengine) I have configured 2 appEgines: the one I downloaded and extracted manually (checked on screen) and second one that was downloaded by Google App Engine Plugin. Anyway, when I check the project preferences now I see 3 engines (screen 2) - the additional one (selected) is in the project dir. As I said I cannot change that because after I click "ok" the changes aren't saved. However though, when I open "configure SDKs" (screen 3) I can see just the two external engines. What the hell? I tried to reinstall whole Eclipse but it did not help... also, I am able to run this project with AppEngine downloaded manually when I build it with Netbeans and run from shell so the engine is probably fine...
Upvotes: 3
Views: 8570
Reputation: 19021
An issue I encountered was probably the same as yours. In my case, Eclipse said:
The App Engine SDK 'C:\Users\Takahiko.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.8.8\appengine-api-1.0-sdk-1.8.8.jar' on the project's build path is not valid (SDK location 'C:\Users\Takahiko.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.8.8\appengine-api-1.0-sdk-1.8.8.jar' is not a directory)
This implies that Eclipse found App Engine SDK binaries in the local maven repository (~/.m2/repository) before it searched the installation directory of App Engine SDK.
(1) Close your project in Eclipse.
(2) Open .classpath of your project with a text editor and if it contains classpathentry's related to App Engine like the following:
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/appengine-local-runtime-shared.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/el-api.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/jsp/repackaged-appengine-ant-1.7.1.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/jsp/repackaged-appengine-ant-launcher-1.7.1.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/jsp/repackaged-appengine-jasper-6.0.29.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/jsp/repackaged-appengine-jasper-el-6.0.29.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/jsp/repackaged-appengine-tomcat-juli-6.0.29.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/jsp-api.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/shared/servlet-api.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/appengine-tools-api.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/appengine-api-labs/v1/appengine-api-labs.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/appengine-endpoints/v1/appengine-endpoints-deps.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/appengine-endpoints/v1/appengine-endpoints.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/asm-4.0.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/datanucleus-api-jdo-3.1.3.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/datanucleus-api-jpa-3.1.3.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/datanucleus-appengine-2.1.2.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/datanucleus-core-3.1.3.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/geronimo-jpa_2.0_spec-1.0.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/jdo-api-3.0.1.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/datanucleus/v2/jta-1.1.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/jsr107/v1/appengine-jsr107cache-1.8.8.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/opt/user/jsr107/v1/jsr107cache-1.1.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/lib/user/appengine-api-1.0-sdk-1.8.8.jar" sourcepath="C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/src/user/appengine-api-1.0-sdk-1.8.8-src.zip">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Eclipse/eclipse-juno/plugins/com.google.appengine.eclipse.sdkbundle_1.8.8/appengine-java-sdk-1.8.8/docs/javadoc/"/>
</attributes>
</classpathentry>
(3) Remove all the classpathentry's (related to App Engine jar files).
(4) Add GAE_CONTAINER before MAVEN2_CLASSPATH_CONTAINER.
<classpathentry kind="con" path="com.google.appengine.eclipse.core.GAE_CONTAINER"/>
(5) Reopen your project.
Upvotes: 11
Reputation: 17892
It looks like there is a problem with the configuration of your SDK.
Your screenshot shows the configuration of your project, but I think you need to look at preferences --> google --> app engine, and check the configuration of your SDK's there. I think it is likely that the one you can't select for your project will show an error there, but either way you will probably want to remove and re-add it and make sure its path is valid.
Upvotes: 1