我正在尝试创建一个简单的servlet-servlet,但是我有一些想要实例化servlet的问题。 我不一定需要使用HttpServlet ,我只需要访问HttpServletRequest和HttpServletResponse这样我就可以通过myServicer运行它们。 什么是达到这个目的的最好方法? 我目前的代码: myServicer = … undertow = Undertow.builder() .addHttpListener(port, host) .setHandler(Handlers.path(Handlers.redirect("/")).addPrefixPath("/", Servlets.defaultContainer().addDeployment( Servlets.deployment() .setClassLoader(EmbeddedUndertowServer::class.java.classLoader) .setDeploymentName("myDeployment").setContextPath("/") .addServlets(Servlets.servlet("myServlet", object : HttpServlet() { override fun service(request: HttpServletRequest, response: HttpServletResponse) { myServicer.service(request, response) // doesn't work } }.javaClass).addMapping("/")) ).apply { deploy() }.start() )) .build() undertow.start() 这是行不通的,因为只是想要一个类,它试图实例化。 完整的代码/项目在这里: https : //github.com/tipsy/javalin/pull/25/files
我尝试实现一个类似于许多GUI构建器的行为:当前拖动的组件应该与另一个组件对齐,如果它们几乎处于水平或垂直线上。 我目前的做法是遍历所有放置的组件,并检查是否有任何四边(几乎)与拖动组件边缘对齐: for (v in rootView.relativeLayout.children()) { // x val left = event.rawX – dXInit val right = event.rawX – dXInit + view.width val leftEdgeRange = (v.leftEdge() – 50 .. v.leftEdge() + 50) val rightEdgeRange = (v.rightEdge() – 50 .. v.rightEdge() + 50) when (left) { in leftEdgeRange -> x = v.leftEdge() in rightEdgeRange -> […]
这是我得到的: @Component class FooController { fun createFoo() { val foo = FooEntity() foo.name = "Diogo" fooRepository.save(foo) } @Autowired internal lateinit var fooRepository: FooRepository } 尝试调用createFoo() ,出现以下错误: kotlin.UninitializedPropertyAccessException: lateinit property fooRepository has not been initialized 我认为在顶部添加一个@Component会使我的类在Spring中被发现,从而使@Autowired能够工作,但也许我错了?
我怎么能懒惰初始化一个字段,并执行一个断言呢? 我试过了 val table: Array<FormatInfo> by lazy { val t = arrayOf(…) assert(table.size == FORMAT_COUNT, { System.err.println("GLI error: format descriptor list doesn't match number of supported formats") }) t } 但它溢出了: java.lang.StackOverflowError at gli.GliKt$table$2.invoke(gli.kt:451) at gli.GliKt$table$2.invoke(gli.kt) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131) at gli.GliKt.getTable(gli.kt) at gli.GliKt$table$2.invoke(gli.kt:693) at gli.GliKt$table$2.invoke(gli.kt) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131) at gli.GliKt.getTable(gli.kt) at gli.GliKt$table$2.invoke(gli.kt:693)… 我该如何解决?
编辑: 这是我有的JSON字符串: json#1 { [ { field1 : "" field2 : 0 field3 : "Amount not fixed" or field : 250 // this field can be string or int }, { field1 : "" field2 : 0 field3 : "Amount not fixed" or field : 250 // this field can be string or int } […]
如何在像下面的结构一样的构造函数中使用Anko的apply()方法的自定义View上使用selectableButtonBackground属性? class XPTO(context: Context) : CardView(context) { init { this.apply { // I'd like to invoke selectableButtonBackground here } } 我试图做context.obtainStyledAttributes(arrayOf(R.attr.selectableItemBackground).toIntArray()).getDrawable(0)但没有成功。
是否有可能同时支持json和multipart表单数据请求? 例如,我想实现一个支持下面两个请求的API: curl -X "POST" "http://localhost:8080/charge" \ -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \ –data-urlencode "user_id=duanhong" \ –data-urlencode "gift_id=1" curl -X "POST" "http://localhost:8080/charge" \ -H "Content-Type: application/json; charset=utf-8" \ -d $'{ "user_id": "duanhong", "gift_id": "1" }' 我试过了: @RequestMapping(value = "/charge", method = arrayOf(RequestMethod.POST), consumes = arrayOf(MediaType.APPLICATION_JSON_UTF8_VALUE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)) fun charge(@RequestBody body: Charge): ChargeResult { return chargeService.charge(body.user_id, body.gift_id) } […]
我试着用Android Studio的新版本3开始一个新项目。 我得到这个错误消息: 这里是gradle.wrapper.properties distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip root.gradle buildscript { repositories { maven { url 'https://maven.google.com' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha1' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url […]
我试图做一个简单的视图,我有一个背景节点( 现在,我有一个文本节点在这里,但最后的节点将是一个SVG路径 )在VBox后面。 我试图让我的背景节点居中在根StackPane之前我移动到实施VBox ,但我似乎无法让我的节点正确居中。 这是我的课程: class UserInputUI : App(InputView::class, UIStyles::class) { init { reloadStylesheetsOnFocus() } override fun start(stage: Stage) { stage.minWidth = 1024.0 stage.minHeight = 768.0 super.start(stage) } } class InputView : View() { override val root = StackPane() init { text("I wish to be centered") { stackpaneConstraints { alignment = Pos.CENTER addClass(UIStyles.headerFontStyle) } […]
我正在尝试设置我的网络配置。 问题是,我设置配置属性和调用addNetwork()方法后,返回值(配置ID)为-1 。 我不知道我的代码有什么问题。 我在另一个项目中使用了相同的代码,并且它能够正常工作。 这些是我使用的权限: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> 完整的代码 override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val wifiManager = activity.getSystemService(Context.WIFI_SERVICE) as WifiManager val networkAccessPoint = NetworkAccessPoint.getInstance(wifiManager) networkAccessPoint.generateConfigurationAccessPoint() return inflater!!.inflate(R.layout.fragment_main, container, false); } NetwockAccessPoint类 public void generateConfigurationAccessPoint(){ WifiConfiguration wifiConfiguration = […]