- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试更多地了解来自soap-rpc背景的reSTLet。我似乎不知道该怎么做(也许不可能)的一件事是根据请求修改对象或发回经过修改的复制版本。
我正在尝试做这样的事情:
public interface AddressService {
@Get
Address addOnZipCode( Address address );
}
服务器将与实现一起部署,客户端可以利用动态代理来完成其工作。
服务器启动得很好,但是当客户端进行调用时,服务器上没有任何迹象表明正在调用实现方法。此外,在对服务器的调用返回之前,客户端不会出错 - 返回的对象为空?!?
我在这里尝试用 ReSTLet 可以实现什么吗?如果是这样,我对我可能做错了什么有什么想法吗?
如果需要,我可以发布更多代码。
提前致谢。
编辑#1:
我什至尝试简化它以不使用自定义对象:
@Post
String execute( String message );
我得到以下信息:
INFO: Starting the default HTTP client
Exception in thread "main" Method Not Allowed (405) - Method Not Allowed
at org.restlet.resource.ClientResource$1.invoke(ClientResource.java:1615)
at $Proxy5.execute(Unknown Source)
我开始认为这是不可能的,因此,我很难看出这是 SOAP+RPC Web 服务的可行替代方案。
编辑#2:根据书中的示例,这似乎是可能的:“ReSTLet in Action”
public interface AccountsResource {
@Get("txt")
public String represent();
@Post("txt")
public String add(String account);
}
编辑#3:事实证明,仅仅点击 Eclipse 控制台中的“停止”按钮并不能关闭服务器实例。打开浏览器访问服务器 URL 显示了一些可疑的结果 - 有多个旧服务器实例正在运行。将它们全部关闭后,我让它开始工作。最终的答案是使用 @Post
而不是 @Get1
。
最佳答案
看看这个:
http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet/303-restlet.html
在服务器端,您的实现必须如下所示:
class AddressServerResource extends ServerResource implements AddressService {
// implementation
}
在客户端:
ClientResource cr = new ClientResource("http://your-api.com/address/123");
AddressService service = cr.wrap(AddressService.class);
// use the service transparently
编辑:
@Post
Address addOnZipCode( Address address );
关于java - ReSTLet 修改入站对象并返回它还是返回新副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132390/
前不久,哔哩哔哩(一般常称为 B 站)发布了一篇文章《2021.07.13 我们是这样崩的》,详细回顾了他们在 2021.07.13 晚上全站崩溃约 3 小时的至暗时刻,以及万分紧张的故障定位与恢复过
想象一下这种情况,周围有一些智能手机和计算机,它们的 WiFi 适配器(无线适配器)打开,但没有必要连接到网络。 有没有办法通过 Linux 机器查看 MAC 地址? 任何见解表示赞赏。 最佳答案 断
我无法创建新的 Window Station 来运行我的应用程序 int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { wprintf(L"
在 Conda 环境中安装包后,我想对该包中的代码进行一些更改。 在哪里可以找到包含已安装包的 site-packages 目录? 我有 Anaconda Python 2.7 base 发行版,但找
今天去改了matplotlib的配置。搜索 matplotlibrc 发现我有两个: 查看site-packages 文件夹,我发现很多包的名称中都有波浪号: ~klearn 是 sklearn ,但
我是一名优秀的程序员,十分优秀!