在这里,我必须处理一些使用 Apache Thrift 0.13.0 的服务,但最近发布了一个新版本,当我brew install thrift
在终端上使用该命令时,它会安装最新的 Thrift 版本,即 0.14.0。
我无法安装 thrift 0.13.0。那么,有人可以指导我如何使用brew 安装thrift 0.13(我有Thrift 0.13.0 的tar.gz 文件)吗?
我在Spring启动应用程序中使用H2数据库.但是无法在浏览器中打开http:// localhost:8080/console.My Pom.xml如下:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.192</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Spring boot配置:
Springboot配置文件
@Configuration
public class WebConfiguration {
@Bean
ServletRegistrationBean h2servletRegistration(){
ServletRegistrationBean registrationBean = new ServletRegistrationBean( new WebServlet());
registrationBean.addUrlMappings("/console/*");
return registrationBean;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个SpringBoot 2.1.4.RELEASE RESTful Web Service应用程序,它使用Spring Initializer,嵌入式Tomcat,Thymeleaf模板引擎以及作为可执行JAR文件的软件包。
我的其中一个模板中有这段代码,
<tr th:each="menuPriceSummary: ${menus}" >
...
<a href="#" th:onclick="|changeAIColor('idAwesomeIconFAV${menuPriceSummary.menu.symbol}');| + 'performAjaxCall(\'' + @{/allmenupricesummary/switchfav/{id}(id=${menuPriceSummary.menu.symbol})} + '\');'" >
<span th:if="${menuPriceSummary.favorited}">
<i th:id="'idAwesomeIconFAV'+${menuPriceSummary.menu.symbol}" class="fa fa-toggle-on fa-lg" style="color:#009900; text-align: center;" aria-hidden="true"></i>
</span>
<span th:if="${!menuPriceSummary.favorited}">
<i th:id="'idAwesomeIconFAV'+${menuPriceSummary.menu.symbol}" class="fa fa-toggle-off fa-lg" style="color:#e6e6e6;" aria-hidden="true"></i>
</span>
</a>
</tr>
Run Code Online (Sandbox Code Playgroud)
但是在渲染模板时出现此错误:
org.thymeleaf.exceptions.TemplateProcessingException: Only variable expressions returning numbers or booleans are allowed in this context, any other datatypes are not trusted in the context of this expression, including Strings or any other object that could …
Run Code Online (Sandbox Code Playgroud) 我们在 docker 容器中运行 Spring 应用程序。我们的应用程序可以获取 SVG 文件并将它们转换为 PDF 格式以嵌入到 PDF 中。
该应用程序在 osx 上正常工作并按预期进行转码。然而,当从具有不同文件系统的 docker 容器内部运行时,转码器卡住并在一些奇怪的递归文件搜索循环中颠簸 cpu。
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.isFile(File.java:882)
at org.apache.commons.io.filefilter.FileFileFilter.accept(FileFileFilter.java:59)
at org.apache.commons.io.filefilter.AndFileFilter.accept(AndFileFilter.java:122)
at org.apache.commons.io.filefilter.AndFileFilter.accept(AndFileFilter.java:122)
at org.apache.commons.io.filefilter.OrFileFilter.accept(OrFileFilter.java:118)
at java.io.File.listFiles(File.java:1291)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:357)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364)
at org.apache.commons.io.DirectoryWalker.walk(DirectoryWalker.java:364
Run Code Online (Sandbox Code Playgroud)
下面是运行 PDFTranscoder 的线程的堆栈跟踪。Walk 被递归调用一段时间,然后最终 getBooleanAttributes0 被调用并且一切都被阻止。
经过一些进一步的研究,我们发现我们可以仔细查看strace
命令中发生的事情,发现系统本质上是在无限循环中发送以下内容。
stat("/./sys/devices/pci0000:00/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/PNP0103:00/subsystem/devices/pcspkr/input/input1/subsystem/input0/subsystem/input0/uniq", {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 <0.000224>
我们似乎在 stat 调用中被阻止或挂起。但是我们现在已经深入研究了系统调用,结果证明它很难调试。有没有人有任何想法?
我刚刚创建了控制器,但是当我尝试启动应用程序时,出现标题中提到的错误。
我花了一些时间弄乱我的控制器,看不到任何重复的映射,所以不能完全确定出了什么问题。以下是我的控制器:
@Controller
public class CSPServerController {
@Autowired
ServerService serverService;
@Autowired
AuditLogService auditLogService;
@RequestMapping(name = "/servers", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleReadOnly)")
public String loadServers(Model model){
model.addAttribute("servers",serverService.getAll());
return "servers";
}
@RequestMapping(name = "/servers/new", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String newServer(Model model){
model.addAttribute("server", new Server());
model.addAttribute("auditLog", new AuditLog());
return "server";
}
@RequestMapping(name = "/servers/{id}", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String getServer(@PathVariable Long id, Model model){
model.addAttribute("server", serverService.getById(id));
model.addAttribute("auditLog", new AuditLog());
return "server";
}
@RequestMapping(name = "/servers/save", method = RequestMethod.POST)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String saveServer(Model …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 GenericData.Record 将 avro 数据生成到 kafka 中,但出现以下异常:
线程“main”org.apache.avro.AvroRuntimeException 中出现异常:不是有效的架构字段:emailAddresses.email
这是我的架构:
{
"namespace": "com.cloudurable.User",
"type": "record",
"name": "User",
"fields": [
{"name": "id", "type": "int", "default" : 0},
{"name": "fname", "type": "string", "default" : "EMPTY"},
{"name": "lname", "type": "string", "default" : "EMPTY"},
{"name": "phone_number", "type": "string", "default" : "EMPTY"},
{"name": "age", "type": "int", "default" : 0},
{
"name": "emailAddresses",
"type": {
"type": "record",
"name": "EmailAddress",
"fields": [
{
"name": "email",
"type": "string",
"default" : "EMPTY"
},
{
"name": "address",
"type": "boolean",
"default": …
Run Code Online (Sandbox Code Playgroud) 我想创建一个城市名称列表.我知道两种方式.
List<String> cities = Stream.of("Paris", "London", "New York", "Tokyo").collect(Collectors.toList());
List<String> cities = Arrays.asList("Paris", "London", "New York", "Tokyo");
Run Code Online (Sandbox Code Playgroud)
Stream.of(..).collect(..)
和之间有什么区别Arrays.asList(..)
?
我正在读取结构如下的 CSV 文件:
1;Miller Hame; 1,2,3,4,5.....; 1232323;
Run Code Online (Sandbox Code Playgroud)
我必须把它分成String[]
,我可以处理每一行,每一行"Part"
到目前为止我的代码:
Stream<String> input = java.nio.file.Files.lines(java.nio.file.Paths.get("data.csv"));
String[] lines = input.skip(1)
.map(s->s.split(";"))
.toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)
事实上我正在得到java.lang.ArrayStoreException
。
(是的,这是为了家庭作业,但我不想要整个解决方案,只想要工作的一小部分。)
我试图理解 JVM 字节码,但我遇到了以下代码:
58: invokeinterface #5, 1 // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
63: invokedynamic #6, 0 // InvokeDynamic #0:test:()Ljava/util/function/Predicate;
68: invokeinterface #7, 2 // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
Run Code Online (Sandbox Code Playgroud)
似乎计数值总是nargs + 1(在 58 中:应该是 0 但为 1,在 68 中:应该是 1 但为 2)。
根据JVM 文档:
计数操作数是一个不能为零的无符号字节
这就是为什么一些参数似乎是nargs + 1 的原因吗?
我对java相当陌生,我正在寻找更有效的解决方案来解决我的问题。我有一个从 1 到 10 000 的数字列表,需要排除每个 3 的倍数的数字(很简单)和每个百分之 5 的数字,因此排除 500-599、1500-1599 等。我有一个解决方案,但我认为它效率不高。是否可以将数字分解为字符串并排除那些以 5 作为百分位数字的数字,这样我就不必为 1500-1599、2500-2599 等编写相同的语句
for (int ii = 500; ii <= 599; ii++) {
if (a == ii) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个String数组,我需要找到最短字符串的长度.例如,对于这个字符串数组,["abc", "ab", "a"]
我应该得到值1
.
我编写了获取字符串数组并返回int值的方法
val minLength = fun(strs: Array<String>): Int {
var minLength = strs[0].length
for (index in 1..strs.size - 1) {
val elemLen = strs[index].length
if (minLength > elemLen) {
minLength = elemLen
}
}
return minLength
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用reduce
方法
val minLengthReduce = strs.reduce ({
str1, str2 ->
if (str1.length < str2.length) str1 else str2
}).length
Run Code Online (Sandbox Code Playgroud)
是否可以直接从reduce()
方法而不是字符串值获取int 值?
我发现这个问题,大约reduce
和fold
方法.
我应该使用折叠方法代替减少?
这是我的Android活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_rest);
pdialog=new ProgressDialog(this);
query = getIntent().getExtras().getString("query");
if(!TextUtils.isEmpty(query))
new GetRestTask().execute(query);
}
private class GetRestTask extends AsyncTask<String, Void, ObjectExchanged>
{
@Override
protected void onPreExecute() {
pdialog.setCancelable(true);
pdialog.setMessage("Sending ....");
pdialog.show();
}
@Override
protected ObjectExchanged doInBackground(String... request) {
Map<String, String> vars = new HashMap<String, String>();
// vars.put("query", ClientRestActivity.this.query);
if(request != null && request.length > 0)
{
try
{
return ( getRestTemplate()).getForObject(URL, ObjectExchanged.class,query );
}
catch (RestClientException e) {
e.printStackTrace();
return null;
}
}
return null;
} …
Run Code Online (Sandbox Code Playgroud) java ×8
spring ×3
spring-boot ×3
arrays ×2
java-8 ×2
spring-mvc ×2
android ×1
apache-fop ×1
apache-kafka ×1
avro ×1
batik ×1
bytecode ×1
docker ×1
h2 ×1
html ×1
java-stream ×1
json ×1
jvm ×1
kotlin ×1
list ×1
maven ×1
rest ×1
spark-avro ×1
string ×1
svg ×1
thrift ×1
thymeleaf ×1