我希望通过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错误
这是微不足道的错误。
意外标记:包@第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连接。 显示数据库
我想使用这里描述的端口转发连接到运行在OpenShift (3.9)中的PostgreSQL (9.6)集群。为此,我在一个跳转主机(在OpenShift集群之外)上设置并检查端口转发,如下所示: 因此,端口转发似乎只监听< code>localhost,而不监听主机的其他IP地址。最终,我想从另一个远程主机通过跳转主机连接到数据库,所以“本地主机”是不够的。 我如何设置(OpenShift)端口