我创建了一个Java类,该类的参数为String []数据类型,但不知道如何传递数组。我尝试过的是将数组放在单引号内,但是当我运行代理服务时,它返回空值。
请求参数:
@app.route('/login', methods=['GET','POST'])
@app.route('/login2', methods=['GET','POST'])
def login():
error = None
if request.method =='POST':
un = request.form['username']
pw = request.form['password']
#check if username and password is correct and store the result in check
if check == "error":
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('login2'))
return render_template('login.html', error = error)
if __name__ == '__main__':
app.run(debug = True)
def login2():
error = None
if request.method =='POST':
un = request.form['username']
pw = request.form['password']
#check if username and password is correct and store the result in check
if check=="error":
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('home'))
return render_template('login2.html', error=error)
我设置输出的方式就是这样
java.lang.String = 'EDGF.FMW_SELECT_TABLE_NAME'
java.lang.String[] = '{"jdbc:oracle:thin:@IP:PORT:SID", "User", "Password"}'
java.lang.String[] = '{$body/oraf:Order/oraf:var1,$body/oraf:Order/oraf:var2}'
我尝试使用相同的参数运行Java类,并返回结果。
运行Java类的结果
<oraf:queryResult>{data($resultSetTable)}</oraf:queryResult>
运行代理服务的响应
, 49451234, , , 2019-02-13 00:00:00.0, , 12341234, , null,
答案 0 :(得分:0)
要将数组放入JavaCallout中,可以使用fn:tokenize函数,例如:
例如,通过使用assign(“ var1,var2,var3”)创建$ variable ealier,然后将其粘贴到您的参数下面的行:
fn:tokenize($ variable,',')
答案 1 :(得分:0)
我同意使用 fn:tokenize()。但是,在我的 Windows 操作系统上的 OSB 环境 (12c IntegratedWeblogicServer) 中,我无法使用 OSB 变量将结果数组(实际上:Xquery 序列)传递给 JavaCallout。当我将 fn:tokenize() 放在 JavaCallout 本身的输入参数表达式中时,它开始为我工作。