logo资料库

如何使用Niagara与前端进行通信.pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
作者:Jarvis 邮箱:xinwei.hu@pan-support.com 这里我们将使用一个 UnauthenticatedServlet(无认证)的方 式来实现和前端页面的简单交互;关于环境搭建和配置这里不再赘 述——详细步骤和环境配置可以参考下面文档: https://download.csdn.net/download/cw136/10911145 一. 新建一个 Niagara module 打开 Niagara 软件—>tools—>New Module Next-> Next-> Finish.
二.代码及服务配置 接下来使用 IDEA 打开,刚刚新建的 mod: 添加需要用到的依赖:
compile "Tridium:web-rt:4.7" compile "libraries:javax.servlet-api-3.1.0:" 刷新: 在目录下新建一个类: 代码如下:
package com.mypackage.Unauthenticated; import javax.baja.naming.BOrd; import javax.baja.nre.util.TextUtil; import javax.baja.status.BStatusNumeric; import javax.baja.sys.BComponent; import javax.baja.web.servlets.UnauthenticatedServlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class BUnValueServlet extends UnauthenticatedServlet { public BUnValueServlet() { } public void init() throws ServletException { System.out.println("hello, dataServlet"); } protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = TextUtil.toLowerCase(req.getMethod()); req.setCharacterEncoding("utf-8"); if (method.equals("get")) { this.doGet(req, resp); } else if (method.equals("post")) { this.doPost(req, resp); } else { System.out.println("not get or post method detect"); resp.sendError(405, method); } } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setHeader("Access-Control-Allow-Origin", "*"); String qeryStr = req.getQueryString(); System.err.println(qeryStr); if (req.getParameter("addr") != null) { BOrd ordFlag = BOrd.make(req.getParameter("addr")); BComponent bComponent = ordFlag.resolve().getComponent(); if (req.getQueryString().indexOf("writevalue") > -1) {
bComponent.set("in10", new BStatusNumeric((double)Float.parseFloat(req.getParameter("writevalue")))); } else { bComponent.subscribed(); String string = bComponent.get("out").toString(); resp.getWriter().write(string); resp.flushBuffer(); } } } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("post request received"); } } 然后,在目录下添加一个 WEB-INF 文件和 web.xml 文件: 加入内容: UnServlet com.mypackage.Unauthenticated.BUnValueServlet UnServlet /UnServlet/* 把它加入 gradle 文件中:
jar { from('src') { include 'WEB-INF/*.xml' } } 打开如图文件:
更改其内容:
UNAUTHENTICATED_ACCESS response html access for dataServlet server NETWORK_COMMUNICATION Outside access for UnServlet 最后编译: 这样服务就添加到了 Niagara 里了。重启 Niagara 站点,使用 浏览器访问:
分享到:
收藏