小编Waq*_*hah的帖子

路径模板分隔符'/'不能连续出现 - 属性路由问题

配置与错误无关

这是我在App_Start/WebApiConfig.cs中对Web API的配置:

public static void Register(HttpConfiguration config)
    {
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );.....
Run Code Online (Sandbox Code Playgroud)

这是我的global.asax类:

GlobalConfiguration.Configure(WebApiConfig.Register);
Run Code Online (Sandbox Code Playgroud)

这是错误

但是每当应用程序启动时,我都会遇到以下异常:

路径模板分隔符'/'不能连续出现.它必须由参数或文字值分隔

堆栈跟踪:

at System.Web.Http.Routing.RouteParser.Parse(String routeTemplate)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilder(String template, IInlineConstraintResolver constraintResolver)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilderInternal(String template)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilder(String template)
at System.Web.Http.RouteAttribute.System.Web.Http.Routing.IDirectRouteFactory.CreateRoute(DirectRouteFactoryContext context)
at System.Web.Http.Routing.AttributeRoutingMapper.CreateRouteEntry(String prefix, IDirectRouteFactory factory, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, String prefix, IReadOnlyCollection`1 factories, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, HttpControllerDescriptor controller, IInlineConstraintResolver …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asp.net-web-api asp.net-web-api2

37
推荐指数
2
解决办法
2万
查看次数

Python 中的 AWS Lambda:在 Lambda 函数处理程序中导入父包/目录

我在我的无服务器应用程序(避免混乱的最简单应用程序)中有一个类似于以下的目录结构,我使用 AWS SAM 和 Python 3.8 作为运行时创建了它:

??? common
?   ??? a.py
??? hello_world
?   ??? __init__.py
?   ??? app.py
?   ??? requirements.txt
??? template.yaml
Run Code Online (Sandbox Code Playgroud)

我想common/a.py在 Lambda 处理程序中导入模块 - hello_world/app.py。现在我知道我可以通过将路径添加到or来在 Python 中正常导入它,但是当代码在 Docker 容器内的 Lambda 中运行时它不起作用。调用时,Lambda 处理函数在目录内运行,不考虑文件夹结构。PYTHONPATHsys.path/var/task

我尝试插入/var/task/common, /var/common,/var甚至像这样/commonsys.path编程方式插入:

import sys
sys.path.insert(0, '/var/task/common')
from common.a import Alpha
Run Code Online (Sandbox Code Playgroud)

但我仍然收到错误:

ModuleNotFoundError: No module named 'common'

我知道Lambda 层,但鉴于我的场景,我想直接引用多个 Lambda 函数中的公共代码,而无需上传到层。我想serverless-python-requirements无服务器框架中但在 …

python python-3.x aws-lambda aws-sam-cli aws-sam

10
推荐指数
1
解决办法
6397
查看次数

解决LMAX Disruptor模式中的消费者(eventProcessor)问题

在使用破坏者时,可能存在滞后的消费者,并且由于消费者的速度缓慢,整个应用程序都会受到影响.

请记住,每个生产者(发布者)和消费者(EventProcessor)每个都在一个线程上运行,什么可以解决缓慢的消费者问题?

我们可以在单个消费者上使用多个线程吗?如果没有,什么是更好的选择?

consumer disruptor-pattern

6
推荐指数
1
解决办法
4258
查看次数

套接字上的 Protobuf-net 序列化。未找到无参数构造函数 ProtoException

我创建了一个应用程序,其中使用套接字完成进程间通信。当客户端连接到我创建的服务器并发送序列化消息时,该过程开始。这条消息,我使用 Protobuf-net 序列化,使用 SerializeWithLengthPrefix 并使用 DeserializeWithLengthPrefix 反序列化它。客户端将消息发送到服务器,后者将其完美地反序列化,但在服务器到客户端的情况下,情况并非如此。

主类是BaseMessage,它是抽象的。

[Serializable, ProtoContract, ProtoInclude(5001, typeof(LogonMessage))]
abstract public class BaseMessage
{
    public BaseMessage()
    {

    }

    abstract public int MessageType { get; }
}
Run Code Online (Sandbox Code Playgroud)

而 LogonMessage 实现了 BaseMessage 类。

[Serializable, ProtoContract]
public class LogonMessage : BaseMessage
{
    public LogonMessage()
    {

    }

    [ProtoMember(1)]
    public string Broker { get; set; }

    [ProtoMember(2)]
    public int ClientType { get; set; }

    public override int MessageType
    {
        get { return 1; }
    }
}
Run Code Online (Sandbox Code Playgroud)

初始握手后,客户端请求一些在 protobuf-net 帮助下序列化的服务,我端的本地服务器通过从 Web 上的另一台服务器请求数据来提供服务。这个消息从客户端传输到服务器是完美的。

当我的服务器从 …

.net c# protocol-buffers protobuf-net

5
推荐指数
1
解决办法
5223
查看次数

没有控制器后缀的控制器

根据我的设计要求,我想从控制器中排除后缀'Controller'并将其替换为'Resource'.因此'FundsController'将成为'FundsResource'.

问题是当我更改替换术语'Controller'时,我无法通过基于约定或属性路由的路由到我的指定操作,并且得到一个错误,指出找不到具有此名称的控制器.

如何满足上述设计要求,并且能够无问题地路由?在基于约定或属性路由?或者,我们是否可以合并基于约定和属性路由的好处来实现这一目标?

提前致谢.

asp.net-mvc-routing asp.net-web-api attributerouting asp.net-mvc-5 asp.net-web-api2

3
推荐指数
1
解决办法
1646
查看次数

Liquibase:MySqlSyntaxErrorException:表已经存在

我已经看到了几个相关问题和他们的答案,但这对我的情况没有帮助.

我有一个Spring启动应用程序,我使用Jhipster创建了实体,另外我自己添加了一些手动更改日志更改集.

我有一个Doctor实体,其中包含与'Specialty'的一对多单向关系,其中'Doctor'是关系的所有者.所以我指定了一个将存储Doctor和Specialty外键的Join表.

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
        name="T_DOCTOR_SPECIALTY",
        joinColumns = @JoinColumn( name="doctor_id"),
        inverseJoinColumns = @JoinColumn( name="specialty_id")
)
private List<Specialty> specialties = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

为此,我添加了一个changelog文件,如果已经存在,它甚至包含忽略特殊标记的标记,

<changeSet id="20150415081455" author="waqas">
    <preConditions onFail="MARK_RAN">
        <not>
            <tableExists tableName="T_DOCTOR_SPECIALTY"/>
        </not>
    </preConditions>
</changeSet>

<changeSet id="20150415081221" author="waqas">

    <createTable tableName="T_DOCTOR_SPECIALTY">

        <column name="id" type="bigint" autoIncrement="true">
            <constraints primaryKey="true" nullable="false"/>
        </column>
        <column name="doctor_id" type="bigint">
            <constraints nullable="false" />
        </column>
        <column name="specialty_id" type="bigint">
            <constraints nullable="false" />
        </column>
    </createTable>

    <addForeignKeyConstraint baseColumnNames="doctor_id"
                             baseTableName="T_DOCTOR_SPECIALTY"
                             constraintName="fk_doctor_id"
                             referencedColumnNames="id"
                             referencedTableName="T_DOCTOR"/>

    <addForeignKeyConstraint baseColumnNames="specialty_id"
                             baseTableName="T_DOCTOR_SPECIALTY"
                             constraintName="fk_specialty_id"
                             referencedColumnNames="id"
                             referencedTableName="T_SPECIALTY"/>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个没有表的新数据库并运行应用程序,但我得到以下异常: …

hibernate jpa liquibase spring-boot

2
推荐指数
1
解决办法
6016
查看次数

org.springframework.context.ApplicationContextException:未正确配置数据库连接池

我有一个使用jHipster创建的Spring Boot应用程序,我正在尝试运行一些集成测试用例,并且我使用以下注释配置了测试用例类:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
@Transactional
public class ScheduleRepositoryTests {....
Run Code Online (Sandbox Code Playgroud)

但我仍然得到上述异常.Stack Trace如下:

java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:94)
at org.springframework.test.context.DefaultTestContext.getApplicationContext(DefaultTestContext.java:72)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:212)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:200)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:259)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:261)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:219)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot jhipster

2
推荐指数
1
解决办法
2568
查看次数