UDN-企业互联网技术人气社区

板块导航

浏览  : 659
回复  : 8

[开发框架] NC65发布RestFul接口不能调用EJB?

[复制链接]
马国飞的头像 楼主
发表于 2019-8-15 11:11:28 | 显示全部楼层 |阅读模式
最近在用restful做NC65的接口,开发过程中遇到如下问题:
1.在NC65上做resfful接口,开发态不能热部署,在rest文件里加了接口配置信息,还是报404错误,检查多个地方都没有问题,有时候重启环境就好了,很是无语。。。
2.根据在NC65上开发restful接口的相关文档,restful服务入口不需要像webservice那样建立接口实现类,只需要在public端建立一个类继承AbstractUAPRestResource抽象类即可。我在这个入口类里调用了EJB服务,出现了如下报错:
QQ截图20190815110811.png

如果在restful接口里不能调用EJB,那么要访问DAO层怎么办?请大神们帮帮忙,谢谢!


发表于 2019-8-15 11:24:16 | 显示全部楼层
需要模拟用户登录获取session,不然安全认证会不通过
点评 ( 1 ) 收起 / 展开点评

马国飞 2019年08月15日 13:54 详情 回复

能不能具体点呢,如何模拟?这个安全认证是谁的,是nc封装的restful服务还是别的?

使用道具 举报

回复

马国飞的头像 楼主
发表于 2019-8-15 13:54:27 | 显示全部楼层
yuliang 发表于 2019-8-15 11:24
需要模拟用户登录获取session,不然安全认证会不通过

能不能具体点呢,如何模拟?这个安全认证是谁的,是nc封装的restful服务还是别的?
使用道具 举报

回复

发表于 2019-8-15 14:58:25 | 显示全部楼层
我的接口都进不去,一直提示警告: A response with a 200 (Ok) status should have an entity. Make sure that resource "http://ip/uapws/rest/testApi/demo/name=lili" returns one or sets the status to 204 (No content).楼主知道怎么回事吗
使用道具 举报

回复

发表于 2019-8-15 15:21:47 | 显示全部楼层
是中间件的安全验证
  1. byte[] token = NetStreamContext.getToken();
  2. if(token == null){
  3.         //生产token,并放入NetStreamContext
  4.         NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("usercode".getBytes("UTF-8"),"password".getBytes("UTF-8"));
  5.         //判断token是否生成,如果用户密码错误,则不会生成出token
  6.         byte[] token2 = NetStreamContext.getToken();
  7.        
  8.         if(token2 != null && token2.length > 0){
  9.             UserExit.getInstance().setGroupId("0001E410000000000LRP");//集团id
  10.             UserExit.getInstance().setGroupNumber("101006013");//登录集团
  11.             UserExit.getInstance().setUserId("1001G71000000000LBYE");//用户主键
  12.             UserExit.getInstance().setUserCode("usercode");
  13.             UserExit.getInstance().setUserDataSource("design");//数据源
  14.             //UserExit.getInstance()....其他属性略
  15.         }
  16. }
复制代码
使用道具 举报

回复

发表于 2019-8-15 16:25:01 | 显示全部楼层
我的rest接口调用提示组件没有部署,rest文件我也写了,还有什么需要配置的吗
Caused by: nc.bs.framework.exception.ComponentNotFoundException: Component: testApi,Detail Message: The tx component: testApi is not found in jndi  please deploy it!} jndiName: testApi meta: null
        at nc.bs.framework.server.AbstractContext.lookup(AbstractContext.java:163)
        at nc.bs.framework.server.BusinessAppServer$3.lookup(BusinessAppServer.java:1167)
        at nc.bs.framework.server.ServerNCLocator.lookup(ServerNCLocator.java:21)
        at uap.ws.comp.facade.MethodInvoker.invokeRestService(MethodInvoker.java:28)
        at uap.ws.comp.facade.UAPRestFacade.dealCompRestSource(UAPRestFacade.java:40)
        at org.restlet.ext.jaxrs.JaxRsRestlet.handle(JaxRsRestlet.java:743)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at uap.ws.rest.filter.UAPLoggerFilter.doHandle(UAPLoggerFilter.java:38)
点评 ( 1 ) 收起 / 展开点评

yuliang 2019年08月16日 14:25 详情 回复

好好检查rest文件格式是否正确、编码是否正确

使用道具 举报

回复

发表于 2019-8-16 14:25:31 | 显示全部楼层
uec_pf5h5pvgs7 发表于 2019-8-15 16:25
我的rest接口调用提示组件没有部署,rest文件我也写了,还有什么需要配置的吗
Caused by: nc.bs.framework. ...

好好检查rest文件格式是否正确、编码是否正确
点评 ( 1 ) 收起 / 展开点评

uec_pf5h5pvgs7 2019年08月16日 17:23 详情 回复

rest文件是复制的别的,应该没什么问题

使用道具 举报

回复

发表于 2019-8-16 17:23:44 | 显示全部楼层
yuliang 发表于 2019-8-16 14:25
好好检查rest文件格式是否正确、编码是否正确

<?xml version="1.0" encoding='gb2312'?>
<module>
        <rest>
                <resource classname="nc.pubitf.ic.test.rest.TestApi"  exinfo=""/>
        </rest>
</module>
rest文件是复制的别的,应该没什么问题
使用道具 举报

回复

马国飞的头像 楼主
发表于 2019-8-17 09:15:35 | 显示全部楼层
rest文件要抽出来重新放到home里面,即使开发环境里已经同步了,也要这样做。
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部