Quelques problèmes de développement

Problèmes inter-domaines

Aucun en-tête "Accès-Contrôle-Autoriser-Origine" n'est présent sur la ressource demandée. L'accès à l'origine "nul" n'est donc pas autorisé. L'
accès entre domaines enfreint la politique de même origine!
Même origine: même nom de domaine, protocole et port.
Politique de même origine: Ajax du navigateur ne peut accéder qu'aux ressources avec le même nom de domaine ou IP que sa page html.
La politique de même origine est le comportement du navigateur pour protéger les données locales contre la pollution par les données extraites par le code JavaScript. Par conséquent, il intercepte les données reçues de la demande envoyée par le client, c'est-à-dire que la demande est envoyée et le serveur répond, mais cela ne peut pas être Le navigateur reçoit.

Première solution:

public static void main(String[] args) {
    
    
        SpringApplication.run(DemoUaaApplication.class, args);
    }
    @Bean
    public CorsFilter corsFilter() {
    
    
        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true); // 允许cookies跨域
        config.addAllowedOrigin("*");// 允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Origin
        config.addAllowedHeader("*");// 允许访问的头信息,*表示全部
        config.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
        config.addAllowedMethod("*");// 允许提交请求的方法,*表示全部允许
        config.addAllowedMethod("HEAD");
        config.addAllowedMethod("GET");// 允许Get的请求方法
        config.addAllowedMethod("PUT");
        config.addAllowedMethod("POST");
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}

Solution deux:

Configurer devant la classe: @CrossOgigin (origins = "*", maxAge = 3600)

Solution 3: utiliser le proxy inverse nginx

Mapper l'URL vers la même source

Option 4: utiliser jsonp

JSONP est une méthode courante de communication cross-origin entre le serveur et le client. La plus grande caractéristique est une application simple et une bonne compatibilité (compatible avec les versions inférieures d'
IE). L'inconvénient est qu'il ne prend en charge que les demandes de réception, pas les demandes de publication.
L'idée principale: la page Web demande des données JSON au serveur en ajoutant un élément. Une fois que le serveur a reçu la demande, il renvoie les données
à la position de paramètre d'une fonction de rappel avec un nom spécifié.

L'arrière-plan Axios ne peut pas obtenir les paramètres transmis par le premier plan

axios.post(`http://localhost:8080/brands/insert`, {
    
    
                        name: this.name, 
                        date: new Date()
                    })

Nous regardons son code source comme ceci

if (utils.isObject(data)) {
    
    
	setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
	return JSON.stringify(data);
}

La raison en est qu'axios fait deux choses lorsque le paramètre est Object

  • l'en-tête est défini sur application / json; charset = utf-8
  • Les paramètres sont Json.stringify,
    vous devez donc négocier avec les partenaires back-end et utiliser la classe d'entité pour recevoir

elasticalsearch5 ne peut pas démarrer

Message d'erreur

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid1.log

Analyse des causes

Ceci est dû au fait qu'elasticsearch5.0 alloue 2g d'espace jvm par défaut et que la mémoire n'est pas suffisante pour l'allocation.

Solution:

Exécutez la commande pour find / -name jvm.optionstrouver le fichier de configuration des options de jvm

/var/lib/docker/overlay2/860d339b23854c34f5f1da64d672faf55f8d0d89e4d392f5e6be4c79b907b5aa/diff/usr/share/elasticsearch/config/jvm.options
/var/lib/docker/overlay2/0f5e15a32830359d506b5a58ee079e71a625fb606fc3e5586d00145ec7744d97/diff/etc/elasticsearch/jvm.options

Utilisez la commande vi 文件名pour modifier pour réduire l'espace jvm

## JVM configuration

################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms1g 改成512m
-Xmx1g 改成512m

################################################################
## Expert settings
################################################################
##
## All settings below this section are considered
## expert settings. Don't tamper with them unless
## you understand what you are doing
##
################################################################

## GC configuration
8-13:-XX:+UseConcMarkSweepGC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly

Le fichier pom devient ignoré pom.xml

Description du problème:

  • Lorsque Maven a créé le module, je l'ai supprimé car le module n'a pas été construit correctement à cause du premier contact! Créé un autre module avec le même nom qui a été supprimé auparavant. Cependant, le fichier pom.xml ignoré est apparu.
    Solution:
  • Cliquez sur fichier -> Paramètres -> Build, Excution, Deployment -> Build Tools -> Maven -> Ignored Files pour décocher

commande npm run

Impossible de trouver le module

  1. [webpack-cli] Erreur: impossible de trouver le module 'xxxxxx'
  • npm WARN Local package.json existe, mais node_modules manquant, vouliez-vous l'installer?
  • Lorsque ce problème se produit, vous pouvez simplement télécharger le module, mais ne pas l'installer, exécutez simplementnpm install即可
  1. Erreur: impossible de trouver le module 'webpack-cli / bin / config-yargs'
  • La nouvelle version de webpack-cli n'a pas le fichier config-yargs, vous devez donc abaisser la version de webpack

PageHelper ne fonctionne soudainement pas

Solution

Dans le projet springBoot, vous constatez soudainement que, quelle que soit la manière dont vous vérifiez, le backend vous renvoie toujours les résultats. À ce stade, vous devrez peut-être envisager de passer à un
projet Maven de pageheler .

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>版本号</version>
</dependency>

Projet springBoot

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>版本号</version>
</dependency>

Échec de la configuration automatique d'une source de données

Description:
	Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
Reason:
	Failed to determine a suitable driver class
Action:
Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

Solution

Solution 1:
Configurez dans le
lanceur @SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
Solution 2:
Modifiez le fichier pom
et ajoutez-le dans la dépendance

<exclusions>
	<exclusion>
		<!--pom坐标-->
	</exclusion>
</exclusions>

Solution 3:
modifier le fichier de configuration

spring:
	autoconfigure:
		exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

Solution 4:
Si vous avez essayé les deux méthodes ci-dessus et que le problème n'est pas encore résolu, vous pouvez lui ajouter les paramètres de connexion à la base de données, et il faudra encore un an pour la couture et la réparation.

InsatisfaitDependencyException:

org.springframework.beans.factory. UnsatisfiedDependencyException : erreur lors de la création du bean avec le nom ' brandController ': dépendance non satisfaite exprimée par le champ 'brandFeign'; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom « com.zml.feign.ApiBrandFeign »: FactoryBean a lancé une exception lors de la création d'objet; l'exception imbriquée est java.lang.NullPointerException

Ce que j'ai rencontré était dû à la version trop basse de swagger.
Comme la version 2.2.2 était utilisée auparavant, le problème a été résolu en la changeant en 2.6.1

[Vue warn]: Échec de la résolution de la directive: xxxx

(trouvé dans)
Il convient de noter que lorsque nous utilisons des commandes personnalisées, nous convertirons les commandes en minuscules lorsque nous les utilisons. Par exemple, lorsque je définis une commande myFocus et que j'utilise v-myFucus, vous pensez peut-être que c'est correct, mais il Rapportera une erreur Échec de la résolution de la directive: myfocus, nous pouvons voir que la directive est devenue minuscule

Erreur lors de la transmission des données Json à l'en-tête de demande de microservice

{
    
    
    "timestamp": "2021-01-07T15:28:39.835+0000",
    "status": 415,
    "error": "Unsupported Media Type",
    "message": "Content type 'application/octet-stream' not supported",
    "path": "/brand/query/1/9"
}

Doit être changé en Content-Type = application / json

Je suppose que tu aimes

Origine blog.csdn.net/BrightZhuz/article/details/112995119
conseillé
Classement