当前位置: 首页 > 知识库问答 >
问题:

Groovy SOAPUI-ssh(端口22)然后端口转发3306以访问数据库

况经纬
2023-03-14

我希望通过ssh(端口22)隧道,然后端口转发3306访问数据库-SOAPUIgroovy。这是我到目前为止所拥有的,我无法成功运行此代码。

package mypackage
import groovy.sql.Sql
import java.sql.*
import com.jcraft.jsch.JSch
import com.jcraft.jsch.Session


// ssh login
def sshHost = 'test'
def sshUser = 'test'
def sshPass = 'test'
def sshPort = 22

// database login
def targetHost = '127.0.0.1'
def targetUser = 'test'
def targetPass = 'test'
def targetPort = '3306'

JSch jsch = new JSch();
Session session = jsch.getSession(sshUser, sshHost, sshPort);
session.setPassword(sshPass);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
int assinged_port=session.setPortForwardingL(0, targetHost, targetPort);

Connection con = null;
def driver = 'org.mariadb.jdbc.Driver'
def connectionString = 'jdbc:mariadb://localhost:3306/db'
con = DriverManager.getConnection(connectionString, targetUser, targetPass);
Statement st = con.createStatement();
String sql = "select * company "
st.execute(sql);

以下是我得到的错误:

组织。科德豪斯。非常棒。控制多重编译错误异常:启动失败:Script23。groovy:4:无法解析com类。jcraft公司。jsch公司。JSch@第4行,第1列。导入com。jcraft公司。jsch公司。JSch组织。科德豪斯。非常棒。语法。SyntaxException:无法解析类com。jcraft公司。jsch公司。JSch@第4行,第1列。位于组织。科德豪斯。非常棒。ast。ClassCodeVisitorSupport。org上的addError(ClassCodeVisitorSupport.java:146)。科德豪斯。非常棒。控制ResolveVisitor。org上的visitClass(resolveisitor.java:1145)。科德豪斯。非常棒。控制ResolveVisitor。org上的startResolving(resolveisitor.java:141)。科德豪斯。非常棒。控制编译单元10美元。在org上调用(CompilationUnit.java:632)。科德豪斯。非常棒。控制编译单元。applyToSourceUnits(CompilationUnit.java:912)位于org。科德豪斯。非常棒。控制编译单元。doPhaseOperation(CompilationUnit.java:574)位于org。科德豪斯。非常棒。控制编译单元。在groovy上编译(CompilationUnit.java:523)。lang.GroovyClassLoader。groovy上的doParseClass(GroovyClassLoader.java:279)。lang.GroovyClassLoader。groovy上的parseClass(GroovyClassLoader.java:258)。lang.GroovyShell。groovy上的parseClass(GroovyShell.java:613)。lang.GroovyShell。在groovy上解析(GroovyShell.java:625)。lang.GroovyShell。在groovy上解析(GroovyShell.java:652)。lang.GroovyShell。在com上解析(GroovyShell.java:643)。eviware。soapui。支持编写脚本。非常棒。SOAPUIGroovyScript引擎。在com上编译(SoapUIGroovyScriptEngine.java:138)。eviware。soapui。支持编写脚本。非常棒。SOAPUIGroovyScript引擎。在com上运行(SoapUIGroovyScriptEngine.java:89)。eviware。soapui。实施。wsdl。测试步骤。WsdlGroovyScriptTestStep。在com上运行(WsdlGroovyScriptTestStep.java:141)。eviware。soapui。实施。wsdl。面板。测试步骤。GroovyScriptStepDesktopPanel$运行操作$1。在java上运行(GroovyScriptStepDesktopPanel.java:250)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1142)。util。同时发生的ThreadPoolExecutor$工作者。在java上运行(ThreadPoolExecutor.java:617)。lang.Thread。运行(Thread.java:745)Script23。groovy:5:无法解析com类。jcraft公司。jsch公司。会话@第5行,第1列。导入com。jcraft公司。jsch公司。会话^组织。科德豪斯。非常棒。语法。SyntaxException:无法解析类com。jcraft公司。jsch公司。会话@第5行,第1列。位于组织。科德豪斯。非常棒。ast。ClassCodeVisitorSupport。org上的addError(ClassCodeVisitorSupport.java:146)。科德豪斯。非常棒。控制ResolveVisitor。org上的visitClass(resolveisitor.java:1145)。科德豪斯。非常棒。控制ResolveVisitor。org上的startResolving(resolveisitor.java:141)。科德豪斯。非常棒。控制编译单元10美元。在org上调用(CompilationUnit.java:632)。科德豪斯。非常棒。控制编译单元。applyToSourceUnits(CompilationUnit.java:912)位于org。科德豪斯。非常棒。控制编译单元。doPhaseOperation(CompilationUnit.java:574)位于org。科德豪斯。非常棒。控制编译单元。在groovy上编译(CompilationUnit.java:523)。lang.GroovyClassLoader。groovy上的doParseClass(GroovyClassLoader.java:279)。lang.GroovyClassLoader。groovy上的parseClass(GroovyClassLoader.java:258)。lang.GroovyShell。groovy上的parseClass(GroovyShell.java:613)。lang.GroovyShell。在groovy上解析(GroovyShell.java:625)。lang.GroovyShell。在groovy上解析(GroovyShell.java:652)。lang.GroovyShell。在com上解析(GroovyShell.java:643)。eviware。soapui。支持编写脚本。非常棒。SOAPUIGroovyScript引擎。在com上编译(SoapUIGroovyScriptEngine.java:138)。eviware。soapui。支持编写脚本。非常棒。SOAPUIGroovyScript引擎。在com上运行(SoapUIGroovyScriptEngine.java:89)。eviware。soapui。实施。wsdl。测试步骤。WsdlGroovyScriptTestStep。在com上运行(WsdlGroovyScriptTestStep.java:141)。eviware。soapui。实施。wsdl。面板。测试步骤。GroovyScriptStepDesktopPanel$运行操作$1。在java上运行(GroovyScriptStepDesktopPanel.java:250)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1142)。util。同时发生的ThreadPoolExecutor$工作者。在java上运行(ThreadPoolExecutor.java:617)。lang.Thread。run(Thread.java:745)2错误

共有1个答案

乌修筠
2023-03-14

这是微不足道的错误。

意外标记:包@第2行,第1列。包mypackage^

将语句从第2行移动到第1行。

更新1:在修复了上述建议的更改后,OP更新了带有不同错误的问题。因此,添加附加信息。

jsh及其依赖项库需要复制到SOAPUI\u HOME/bin/ext目录下,然后重新启动SOAPUI工具。

 类似资料:
  • 问题内容: 我有这两个容器,例如(CentOs)和。我想拥有的是,可以从容器中连接到mongo数据库,就像它在本地运行一样, 无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017 但是,如果执行此操作,则必须提供root密码,然后它会将我登录到容器中,并且不会发生端口转发 背景:我想这样做是因为我正在运行一个Java程序,该程序连接到localhost上

  • 问题内容: 我在Mac OSX上使用Docker。 我有一个带有打开的守护程序的容器,正在侦听port 。 虚拟机设置为将所有计算机端口流量转发到此容器端口。 我想将我的本地主机设置为将所有流量转发到计算机端口。 我的机器在 我已经使用Apache虚拟主机配置和Proxy将本地端口8080上的所有HTTP通信转发到了计算机。 对ssh做相同的正确方法是什么? 我认为它涉及到此处提到的SSH隧道传输

  • 端口转发(Forwarded Port)。请求访问主机(你的电脑)上的某个端口,把请求转发到虚拟机上的某个端口。比如你在虚拟机上安装了一个 Web 服务器,默认它会在虚拟机上的 80 端口提供接待服务。你可以配置一个端口转发,当访问主机上的某个端口的时候,把请求转发到虚拟机上的 80 端口。下面通过一个试验你就很容易理解这个端口转发。 端口转发配置 打开 Vagrantfile,添加一行配置代码:

  • 我希望能够远程连接到公开了JMX的Java服务,但它被防火墙阻止了。我尝试使用ssh本地端口转发,但是连接失败了。查看wireshark,当您试图与jconsole连接时,它似乎希望在连接到端口9999后通过一些短暂的端口进行连接,这些端口被防火墙阻止。 有没有什么方法可以让jconsole只通过9999连接或者使用代理?这篇文章还是最好的解决方案吗?或者,我是不是漏掉了什么?

  • dockerfile: docker撰写文件: 应用程序属性文件: 当我运行docker-comush up时,它将创建一个数据库容器和一个连接到数据库容器的应用程序容器。 但是spring应用程序容器在启动过程中遇到了一些错误: org.postgresql.util.PSQL异常:连接到localhost:5432被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。 显示数据库

  • 我遇到的问题是,我无法在我希望看到的端口上看到应用程序。我正在公开端口8080并在8080上运行uwsgi进程,但在浏览器中找不到ip地址的应用程序。我只是得到谷歌Chrome的‘此网页不可用’。(我使用的是Mac,所以我需要获得boot2docker的ip地址)。容器显然正在运行,并报告我的uwsgi和celery进程也都成功运行。 运行时,得到的响应如下 ...因此容器似乎正在接受端口8080