我使用TableViewer两列.第一个应该包含文本,第二个应该包含取决于对象状态的图像.标签提供程序是一个扩展LabelProvider和实现的自定义提供程序ITableLayoutProvider.
如果未显示图像,则布局正确,第一列中的文本与左侧对齐.

但是当显示至少一个图像时,第一列中的文本在右侧和中间之间的某处对齐 - 看起来有点难看.

布局很简单:
availableDevicesList = new TableViewer(this, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
availableDevicesList.setContentProvider(new ArrayContentProvider());
Table table = availableDevicesList.getTable();
TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);
table.setLinesVisible(true);
tableLayout.addColumnData(new ColumnWeightData(3));
new TableColumn(table, SWT.LEFT);
tableLayout.addColumnData(new ColumnWeightData(1));
new TableColumn(table, SWT.RIGHT);
Run Code Online (Sandbox Code Playgroud)
是什么导致这个问题?
我有一个使用slf4j/logback的eclipse RCP应用程序来捕获所有日志消息.
现在我配置了以下文件appender:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>softmodeler_client.log</file>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%date] %level: %logger - %m%n</pattern>
</encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)
这会将日志文件写入应用程序安装目录.
某些客户不允许在安装目录中进行写访问.
在这种情况下,我们重定向文件中定义以下内容的工作空间和配置目录Applicationname.ini:
-data
@user.home/AppData/Roaming/Applicationname/workspace
-configuration
@user.home/AppData/Roaming/Applicationname/configuration
Run Code Online (Sandbox Code Playgroud)
现在我想配置logback.xml这样的,将日志文件指向可写工作区目录:
<file>${osgi.instance.area}softmodeler_client.log</file>
Run Code Online (Sandbox Code Playgroud)
FileNotFoundException由于系统属性的file:/前缀,这导致a osgi.instance.area.没有协议,我没有找到另一个属性.
My question is how can I configure logback to write into my workspace, without having to modify the logback.xml every time?
EDIT:
Maybe I can register a listener from where I can set some initial properties?
I would prefer …
由于安全原因,在网站中包含file://链接(例如 http://localhost)将不会打开。
在 IE 和 Firefox 中,可以在 IE 的“受信任站点”和“本地 Intranet”中允许此类访问,或者在 Firefox 中配置策略:
我无法在 Chrome 或 Edge 中找到方法。
在网上搜索时,我遇到了诸如--allow-file-access-from-files标志之类的解决方案,但这在 Chrome 77.0 中不起作用。
还有一些扩展可以实现该行为:
启用本地文件链接
我相信一定有一些类似的方式与政策像火狐?
编辑:更新 22.03.2021
Chrome 版本 89.0.4389.90
Edge 版本 89.0.774.57
结果:
不允许加载本地资源:file:///D:/temp/demo.pdf
演示 HTML:
<html>
<body>
<a href="file://fileserver/demo.pdf">file://fileserver/demo.pdf</a><br/>
<a href="file:///d:/temp/demo.pdf">file:///d:/temp/demo.pdf</a> extra slash according to https://en.wikipedia.org/wiki/File_URI_scheme
</body>
</html>Run Code Online (Sandbox Code Playgroud)
firefox google-chrome google-chrome-extension microsoft-edge microsoft-edge-chromium
我将两个TreeViewers放入 SWT Shell。
他们每个人都有自己的滚动条。不过,我想只有一个Scrollbar在Shell其控制的滚动TreeViewers同时。
我能够找到的唯一示例是在源比较视图中。但是,我看不出他们是如何做到这一点的——我已经尝试弄明白了一段时间。但至少我知道这是可能的。
有什么建议?
编辑
我的最终界面应该在左边有两个TreeViewers和一个Scrollbar来控制它们。
我想mvn dependency:analyze从命令行使用来手动检查依赖关系问题。问题是我找不到在pom.xml. 必须在命令行中提供所有参数。
所以我必须总是使用
mvn dependency:analyze -DignoreNonCompile
Run Code Online (Sandbox Code Playgroud)
什么,我缺少的是设定的方式ignoreNonCompile在pom.xml在插件配置。
像这样的东西:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze</goal>
</goals>
<configuration>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
如果我使用
<goal>analyze-only</goal>
Run Code Online (Sandbox Code Playgroud)
然后在构建期间运行插件,并使用配置。但我不想让它在构建中运行,只能手动请求。并且手动运行不会遵守该参数。
我可以在pom.xmlnamed 中设置一个属性ignoreNonCompile,但这将在构建中设置此参数并手动运行。
有没有办法只配置 的行为mvn dependency:analyze?
我正在尝试将google admob集成到我的android studio应用中。我在日志中收到以下消息(对于格式,我深表歉意,非常感谢您的协助):
05-30 01:23:47.389 19555-19555/com.example.livingstonlabs.whatsbest I/Ads: Starting ad request.
05-30 01:23:47.430 19555-25051/com.example.livingstonlabs.whatsbest W/GooglePlayServicesUtil: Google Play services out of date. Requires 9080000 but found 8489470
05-30 01:23:47.430 19555-25051/com.example.livingstonlabs.whatsbest W/Ads: Failed to connect to remote ad request service.
05-30 01:23:47.430 19555-25051/com.example.livingstonlabs.whatsbest W/Ads: Could not start the ad request service.
05-30 01:23:47.505 19555-19555/com.example.livingstonlabs.whatsbest W/GooglePlayServicesUtil: Google Play services out of date. Requires 9080000 but found 8489470
Run Code Online (Sandbox Code Playgroud)
我假设我的Google Play服务由于某些原因已过时,但我不知道为什么会这样。我最后有“应用插件:'com.google.gms.google-services'”。
build.gradle(项目)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: …Run Code Online (Sandbox Code Playgroud) no processes deployed with key 'Process_MohitWorkflow'执行时出现异常:
ProcessInstance instance =
runtimeService.startProcessInstanceByKey(workflowName, businessKey, variables);
Run Code Online (Sandbox Code Playgroud)
我的act_re_procdef表中有此工作流程的条目
"Process_MohitWorkflow:1:14";1;" http://www.activiti.org/processdef ";"Mohit Trust";"Process_MohitWorkflow";1;"11";"MyBPMN.bpmn20.xml";"MyBPMN. Process_MohitWorkflow.png";"";FALSE;TRUE;1;"603"
我MyBPMN.bpmn20.xml使用以下代码部署了我的文件:
public void deployProcessFile(String name, InputStream io, long tenantId) {
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.createDeployment()
.addInputStream(name, io)
.name(name.substring(0, name.indexOf(".")))
.enableDuplicateFiltering()
.tenantId(String.valueOf(tenantId))
.deploy();
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
Caused by: org.activiti.engine.ActivitiObjectNotFoundException: no processes deployed with key 'Process_MohitWorkflow'
at org.activiti.engine.impl.persistence.deploy.DeploymentManager.findDeployedLatestProcessDefinitionByKey(DeploymentManager.java:125)
at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:79)
at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35)
at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:81)
at com.vernuso.trust.server.service.ProcessService.startWorkFlowInstanceForEntity(ProcessService.java:265)
at com.vernuso.trust.server.service.ProcessService.startOnboardingForOrganisation(ProcessService.java:221)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:70) …Run Code Online (Sandbox Code Playgroud) 例如,我有一个可以立即启动或延迟(startTime变量)的工作流程.
在startEvent我有一个exclusiveGateway地方,我检查流程应该继续或等到startTime.
<exclusiveGateway id="startGateway" default="startSequenceFlow3"/>
<sequenceFlow id="startSequenceFlow1" sourceRef="startGateway" targetRef="startTimer">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${startTime != null}]]></conditionExpression>
</sequenceFlow>
Run Code Online (Sandbox Code Playgroud)
启动传递变量的工作流startTime可以正常工作,但不传递startTime抛出异常:
无法解析标识符'startTime'
什么是检查是否startTime设置的最佳方法,因为startTime != null不起作用?我宁愿不传球startTime(不是startTime=null).
我使用的代码包括变量:
variables.put("startTime", startTime);
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);
Run Code Online (Sandbox Code Playgroud)
或没有:
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processKey, variables);
Run Code Online (Sandbox Code Playgroud) 我有一个带有 Spnego SSO 设置的 tomcat 服务器,它运行良好,没有任何问题。现在我想在它前面添加一个 Apache 服务器以启用 SSL。Apache服务器使用AJP与其通信:
<VirtualHost *:58443>
SSLEngine on
ServerName ca09417d.global.local:58443
SSLCertificateFile "${SRVROOT}/conf/ssl/ca09417d.server.cer"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/ca09417d.server.key"
...
ProxyRequests off
ProxyPreserveHost On
ProxyPass /vcaps3 ajp://cavcdbdev02:58009/vcaps3
ProxyPassReverse /vcaps3 ajp://cavcdbdev02:58009/vcaps3
</virtualhost>
Run Code Online (Sandbox Code Playgroud)
之后,服务器抱怨这个错误:
KrbException: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP REP - AES256 CTS mode with HMAC SHA1-96
sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:278)
sun.security.krb5.KrbApReq.<init>(KrbApReq.java:149)
sun.security.jgss.krb5.InitSecContextToken.<init>(InitSecContextToken.java:108)
sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:829)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:342)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:285)
sun.security.jgss.spnego.SpNegoContext.GSS_acceptSecContext(SpNegoContext.java:906)
sun.security.jgss.spnego.SpNegoContext.acceptSecContext(SpNegoContext.java:556)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:342)
sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:285)
net.sourceforge.spnego.SpnegoAuthenticator.doSpnegoAuth(SpnegoAuthenticator.java:444)
net.sourceforge.spnego.SpnegoAuthenticator.authenticate(SpnegoAuthenticator.java:283)
net.sourceforge.spnego.SpnegoHttpFilter.doFilter(SpnegoHttpFilter.java:229)
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这些事情:
spnego.allow.localhost =true现在我不知道应该做什么来解决它。
在最近的 Eclipse 更新 2021-03 之后,所有 bitbucket.org 存储库都无法再拉/推:
Pulling 1 repository
git@bitbucket.org:Acountxxx/Repoxxx.git: Cannot log in at bitbucket.org:22
git@bitbucket.org:Acountxxx/Repoxxx.git: Cannot log in at bitbucket.org:22
Run Code Online (Sandbox Code Playgroud)
我尝试在一个新的工作区中克隆存储库,也使用 ssh:
URI:ssh://bitbucket.org/REPOxxxx.git
主机:bitbucket.org
存储库路径:REPOxxxxx.git 协议:ssh
端口:空白
用户:空白
密码:空白
遇到同样的异常:
ssh://bitbucket.org:Acountxxx/Repoxxx.git: Cannot log in at bitbucket.org:22
Run Code Online (Sandbox Code Playgroud)
在CMDgit pull或git push仍然做工精细。
有没有人遇到同样的问题并找到解决方案?
环境:
Windows 10
git 版本 2.30.1.windows.1
Eclipse 2021-03
EGit:5.11.0.202103091610-r
编辑:同样有趣的是,来自 github 的其他存储库仍然可以正常工作。此行为对于 bitbucket 上的私有和公共存储库是相同的。