Could not find method in implementation com.mine.courierApp.server.dao.OrderDao matching descriptor (Ljava/lang/Long;)V for operation OjO7dPbbLTZAEEKwSdsHj5v6Hzw=
의 의미와 해결 방법을 알려주세요. 나는 때문에 내 RequestContext 인터페이스 작업의 몇 가지 방법 잘 완전히 의아해 해요GWT가 내 RequestFactory 인터페이스에서 메소드를 찾을 수 없다는 오류가 발생하지만
Feb 27, 2012 2:07:13 AM com.google.web.bindery.requestfactory.server.ServiceLayerDecorator die
SEVERE: Could not find method in implementation com.mine.courierApp.server.dao.OrderDao matching descriptor (Ljava/lang/Long;)V for operation OjO7dPbbLTZAEEKwSdsHj5v6Hzw=
java.lang.NoSuchMethodException: com.mine.courierApp.server.dao.OrderDao.delete(java.lang.Long)
at java.lang.Class.getMethod(Class.java:1605)
at com.google.web.bindery.requestfactory.server.ResolverServiceLayer.resolveDomainMethod(ResolverServiceLayer.java:138)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveDomainMethod(ServiceLayerDecorator.java:152)
at com.google.web.bindery.requestfactory.server.FindServiceLayer.resolveDomainMethod(FindServiceLayer.java:46)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveDomainMethod(ServiceLayerDecorator.java:152)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveDomainMethod(ServiceLayerDecorator.java:152)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveDomainMethod(ServiceLayerDecorator.java:152)
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 com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:104)
at com.google.web.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:233)
at com.google.web.bindery.requestfactory.server.ServiceLayerCache.resolveDomainMethod(ServiceLayerCache.java:176)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:440)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:225)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)
at com.mine.courierApp.server.CustomRequestFactoryServlet.doPost(CustomRequestFactoryServlet.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
at com.googlecode.objectify.cache.AsyncCacheFilter.doFilter(AsyncCacheFilter.java:57)
at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:363)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
: 여기
전체 호출 스택입니다. 여기 내 인터페이스 :public interface AdminRequestFactory extends RequestFactory
{
// value = interface on server side, locator = class that returns instance of the object that implements "value"
@Service(value = OrderDao.class, locator = InjectingServiceLocator.class)
public interface OrderRequestContext extends RequestContext
{
Request<List<OrderProxy>> listAll();
Request<Void> saveOrder(OrderProxy order);
Request<Void> delete(Long id);
Request<Void> saveOrganization(OrganizationProxy organization);
Request<OrganizationProxy> findOrganizationById(long id);
}
OrderRequestContext contextOrder();
}
saveOrder 및 saveOrganization 작업하지만 listAll 호출, 삭제 및 findOrganizationById 원인 예외가 위. 모호한 언어에서 인터페이스의 메서드 정의가 클래스를 구현하는 메서드와 일치하지 않는다는 것을 이해합니다. 그러나 나는 일하는 방법과 어떤 차이도 보이지 않는다!
orderRequestContext.delete(1L).fire(new Receiver<Void>()
{
@Override
public void onSuccess(Void arg0)
{
createConfirmationDialogBox("Deleted!").center();
}
@Override
public void onFailure(ServerFailure error)
{
createConfirmationDialogBox(error.getMessage()).center();
}
});
어떤 아이디어 : 마침내 여기
public class OrderDao
{
@Inject Ofy ofy;
public OrderDao()
{
System.out.println("");
}
List<Order> listAll()
{
return ofy.load().type(Order.class).list();
}
void delete(Long id)
{
ofy.delete(Key.create(Order.class, id));
}
public void saveOrder(final Order order)
{
ofy.transact(new Ofy.VoidWork()
{
@Override
public void vrun(Ofy ofy)
{
ofy.save(order);
}
});
}
public void saveOrganization(final Organization organization)
{
ofy.transact(new Ofy.VoidWork()
{
@Override
public void vrun(Ofy ofy)
{
Key<Organization> key = ofy.fact().allocateId(Organization.class);
organization.setId(key.getId());
ofy.save(organization.getContactPerson());
ofy.save(organization);
}
});
}
public Organization findOrganizationById(long id)
{
return ofy.load(Organization.class, id);
}
}
그리고 클라이언트 코드에서 호출을하는 방법입니다 : 여기
같은 내 다오 클래스의 모습은 어떻게? 의미
아,하지
public
입니다! 고마워요! – expert