I'm not sure you have the right level of expectations there, as it seems that you would want Java/Eclipse to provide you the same benefits that Microsoft / .NET / LINQ provide when working with OData services.
The webservice and its capabilities are exactly the same independently of the client you use - .NET, Odata4j, JayData - but the client itself will expose more or less functionalities depending on its implementation. The Microsoft OData client is way ahead of everyone else on OData, but that has nothing to do with the service itself.
Here's a sample JSP I wrote sometime ago using OData4j, might help getting you started:
<%@page import="org.odata4j.core.OProperty"%>
<%@page import="org.odata4j.core.OEntity"%>
<%@page import="java.util.List"%>
<%@page import="org.odata4j.consumer.ODataConsumer"%>
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
ODataConsumer client = ODataConsumer.create("http://odata-server:8080/cd_webservice/odata.svc");
int PublicationId = client.getEntities("Publications").filter("Title eq 'Nexus 05 Website'").execute().first().getProperty("Id",Integer.class).getValue();
%>
<div><%=PublicationId %></div>
<%
List<OEntity> Keywords = client.getEntities("Keywords").filter("(PublicationId eq 17) and (TaxonomyId eq 305)").execute().toList();
for(OEntity title : Keywords) {
for(OProperty<?> p : title.getProperties()) {
out.println(p.getName() + " = " + p.getValue() + "<br/>");
}
}
%>
</body>
</html>